android開發 13 嘗試在流布局中移動控制項

2021-09-06 05:42:55 字數 2268 閱讀 2823

我們常用的linearlayout,等都屬於流布局,在流布局中如何移動控制項呢? 我決定做個嘗試。雖然可以使用絕對布局,但我不傾向使用這個布局。那麼看看我的方式吧。

記得margin這個屬性嗎,我們就用來它來控制控制項的位置,改動它的值將會產生移動的效果。

如上面的**所示,margin的屬性存在於 布局引數layoutparams中。

1。我們先獲得該控制項的 布局引數 然後轉型為viewgroup.marginlayoutparams 

2. 更改margin的數值,通過更改 該控制項的上下左右偏移量(相對于父容器控制項的原點),來更改控制項的呈現位置。

3. 呼叫requestlayout 請求重新布局。

通過上面的方式,我們可以產生控制項移動的效果。

同時,我們了解下 scroolby這個方法,該方法可以產生控制項的滾動效果。而看起來移動了該控制項的子內容。

textview1.scrollby(15, 15);

該方法需要兩個引數,x軸偏移量和y軸偏移量。執行**後,我們看到產生了 類似 滾動條移動後,控制項 上移 的效果。看起來像是重繪了檢視內容,而變化了繪製的座標原點。

類似的還有個scroolto方法,該方法需要制定目的偏移量。

貼完整的示例**如下:

xmlns:tools=""

android:layout_width="match_parent"

android:layout_height="match_parent" >

package

com.example.zyf.demo;

import android.os.bundle;

import android.view.menu;

import android.view.view;

import android.view.view.onclicklistener;

import android.view.viewgroup;

import android.view.viewgroup.layoutparams;

import android.widget.button;

import android.widget.linearlayout;

import android.widget.textview;

public

class mainactivity 

extends activity 

});btnscroll = (button) findviewbyid(r.id.btnscroll);

btnscroll.setonclicklistener(

new onclicklistener() 

});btnscrollto1 = (button) findviewbyid(r.id.btnscrollto1);

btnscrollto1.setonclicklistener(

new onclicklistener() 

});btnscrollparent = (button) findviewbyid(r.id.btnscrollparent);

btnscrollparent.setonclicklistener(

new onclicklistener() 

});txtstate = (textview) findviewbyid(r.id.txtstate);

printfstate();

}private string gettextstateofview(view view, string title) 

private

void printfstate() 

private

void printf(string str) 

@override

public

boolean oncreateoptionsmenu(menu menu) 

}

iOS開發 Swift 總結13 if 控制流

第2部分 故事的高階要素 程式語言swift的高階部分 1 if 控制流 1.1 概念通俗講解 if控制流通俗來講就是判斷條件為真時,執行一段 1.2 定義簡潔介紹 1 if 語句 if 判斷條件舉例,有乙個變數age,如果age大於5時,我們讓age等於5,如下。var age 10if age ...

Android開發 新手必看篇 IO流

io流 sharedpreferences 本地儲存資料 sharedpreferences介面主要負責讀取preferences資料 getsharedpreferences 檔名 讀寫模式 23兩種引數以不被官方推薦使用 sharedpreferences preferences getshar...

在android系統中開發DLNA

有比較好的upnp介紹和dlna的思路開發 開發人員必須知道在github上選擇好東西 基於cling開發的dlna應用 5 基於cybergarage庫的dlna開發,海思的dlna應用是用的此sdk 再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們...