android控制項顯示順序控制,android控制項順序

來源:互聯網
上載者:User

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了。 第一種需要功底,相對比較複雜。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.