Android 動態移動控制項實現

2021-09-21 10:34:23 字數 1228 閱讀 6960

在一些介面上,我們可能需要實現可以移動的按鈕等功能,最簡單的方式是呼叫view.layout(),任何布局上的空間都可以支援這種方式移動,上下左右引數值是相對于父viewgroup而言的。

1

2

3

publicvoidlayout(intl,intt,intr,intb)

eg.

button.layout(newleft, newtop, newright,newbottom);

但是這種方式有個缺陷就是,當同乙個viewgroup中有控制項更新(介面重新整理)時,移動的控制項會復位,即回到一開始的位置,這常常會讓人莫名其妙。

另外一種方法是呼叫marginlayoutparams.setmargins(),重新設定控制項位置引數來實現控制項移動效果。這種方式比較適合relativelayout、framelayout,absolutelayout,對於linearlayout,因為最後增加的控制項總在最下或最右,所以達不到移動效果,tablelayout也不行。

1

2

3

4

5

publicmarginlayoutparams(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中常...