編輯:關於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()來設置指定控件的順序,否則後加載的控件還是可能覆蓋你想要上提的控件的。
這樣我們就可以通過這個方法來排列子控件的覆蓋順序啦。
1、概述 Android提供了幾種動畫類型:View Animation 、Drawable Animation 、Property Animation
一、概述最近在項目中看到了SparseArray,好奇研究了下。 SparseArray是Android框架獨有的類,在標准的JDK中不存在這個類。它要比 HashMap
配置AndroidMainfest.xml以友盟渠道為例,渠道信息一般都是寫在 AndroidManifest.xml文件中,代碼大約如下:如果不使用多渠道打包方法,那就
Android開發中經常使用Handler來實現“跨越線程(Activity)更新UI”。本文將從源碼角度回答:為什麼使用Handler能夠跨線程更新UI?為什麼跨線程更
測試環境: win7 64 g++ 4.8.1 /*