android控制項顯示順序控制,android控制項順序
在android中如果首先在xml中靜態添加了一個控制項,剩下的控制項都是通過addView動態添加,那麼如果有控制項覆蓋的情況(比如說使用FrameLayout或者RelativeLayout),先加入得控制項就會被後加入得控制項覆蓋。
在View類中有這樣一個方法 bringToFront ,它得注釋如下:
/**
* Change the view's z order in the tree, so it's on top of other sibling
* views. This ordering change may affect layout, if the parent container
* uses an order-dependent layout scheme (e.g., LinearLayout). Prior
* to {@link android.os.Build.VERSION_CODES#KITKAT} this
* method should be followed by calls to {@link #requestLayout()} and
* {@link View#invalidate()} on the view's parent to force the parent to redraw
* with the new child ordering.
*
* @see ViewGroup#bringChildToFront(View)
*/
我們可以看到,這個方法可以改變ViewGroup內子控制項在Z軸座標得順序,使得當前控制項在所有兄弟控制項得最前面,同時在4.4之前得版本,還需要它的父控制項調用requestLayout()和invalidate()來重新繪製子控制項的順序。
而且要注意的一點是,需要在所有控制項都載入完之後才能調用 bringToFront()來設定指定控制項的順序,否則後載入的控制項還是可能覆蓋你想要上提的控制項的。
這樣我們就可以通過這個方法來排列子控制項的覆蓋順序啦。
android程式,調整控制項的疊放次序怎實現?
這個很簡單,當你點擊imageview2的時候,先擷取2的位置:
假設最外層布局是AbsoluteLayout abslayout,
AbsoluteLayout.LayoutParams params=(AbsoluteLayout.LayoutParams)imageview2.getLayoutParams();
擷取到這個params,
然後abslayout.removeView(imageview2);
然後再abslayout.addView(imageview2,params);
這樣,imageview2就顯示到最前面來了。
去試試吧,行的話再多給點分哦!
對於android ,我隱藏了一個控制項,通過一個button控制,點擊之後,顯示控制項
提供兩個思路1、代碼布局,注意是代碼布局,不是在XML裡布局,點擊事件後重新布局
2、有點投機取巧的意思,就是建立一個Activity,布局設為你點擊後想要的樣式,利用Intent點擊後跳轉到此Activity就OK了。 第一種需要功底,相對比較複雜。