Android中控件移动的实现
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
在一些界面上,我們可能需要實現(xiàn)可以移動的按鈕等功能,最簡單的方式是調用View.layout(),任何布局上的空間都可以支持這種方式移動,上下左右參數(shù)值是相對于父viewgroup而言的。
public void layout(int l, int t, int r, int b)?
eg. ?button.layout(newLeft, newTop, newRight,newBottom);
但是這種方式有個缺陷就是,當同一個viewgroup中有控件更新(界面刷新)時,移動的控件會復位,即回到一開始的位置,這常常會讓人莫名其妙。
另外一種方法是調用MarginLayoutParams.setMargins(),重新設置控件位置參數(shù)來實現(xiàn)控件移動效果。這種方式比較適合RelativeLayout、FrameLayout,AbsoluteLayout,對于LinearLayout,因為最后增加的控件總在最下或最右,所以達不到移動效果,TableLayout也不行。
public MarginLayoutParams(MarginLayoutParams source)?
eg.?
FrameLayout.LayoutParams btnLp = (FrameLayout.LayoutParams)button.getLayoutParams();?
btnLp.setMargins(newLeft, newTop, newRight, newBottom); ? ?
button.requestLayout();
Android不建議應用直接調用layout()方法,所以個人建議選擇FrameLayout + setMargins()實現(xiàn)控件動態(tài)移動效果,還有一個經(jīng)常搭配使用的方法是bringToFront(),當控件被蓋住看不見時相當有用。
轉載于:https://my.oschina.net/yuanhotel/blog/215013
總結
以上是生活随笔為你收集整理的Android中控件移动的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IPsec-×××基本技术挖掘
- 下一篇: String/StringBuffer/