在一些介面上,我們可能需要實現可以移動的按鈕等功能,最簡單的方式是呼叫view.layout(),任何布局上的空間都可以支援這種方式移動,上下左右引數值是相對于父viewgroup而言的。
1
2
3
public
void
layout(
int
l,
int
t,
int
r,
int
b)
eg.
button.layout(newleft, newtop, newright,newbottom);
但是這種方式有個缺陷就是,當同乙個viewgroup中有控制項更新(介面重新整理)時,移動的控制項會復位,即回到一開始的位置,這常常會讓人莫名其妙。
另外一種方法是呼叫marginlayoutparams.setmargins(),重新設定控制項位置引數來實現控制項移動效果。這種方式比較適合relativelayout、framelayout,absolutelayout,對於linearlayout,因為最後增加的控制項總在最下或最右,所以達不到移動效果,tablelayout也不行。
1
2
3
4
5
public
marginlayoutparams(marginlayoutparams source)
eg.
framelayout.layoutparams btnlp = (framelayout.layoutparams)button.getlayoutparams();
btnlp.setmargins(newleft, newtop, newright, newbottom);
button.requestlayout();
android不建議應用直接呼叫layout()方法,所以個人建議選擇framelayout + setmargins()實現控制項動態移動效果,還有乙個經常搭配使用的方法是bringtofront(),當控制項被蓋住看不見時相當有用。
android動態生成控制項
方法 呼叫布局容器的addview,addview需傳入的引數就是你想放置的view 這裡給出乙個例子 final linearlayout layout new linearlayout this layout.setorientation linearlayout.vertical setcon...
動態改變Android控制項大小
一 方法 使用getlayoutparams 和setlayoutparams 方法 二 示例 linearlayout.layoutparams linearparams linearlayout.layoutparams aaa.getlayoutparams 取控制項aaa當前的布局引數 li...
Android實現圓角控制項
在android開發過程中,控制項的使用是最常見 最基本的。但是我們都知道,在android中的控制項都是矩形的,而在實際專案中,我們的ui設計師經常會使用一些圓角的控制項。那麼,在android有哪些方式可以實現圓角控制項了,在使用和適配的過程當中,又有哪些問題了。下面,我將介紹android中常...