方案一
-
利用布局控件顯示優(yōu)先級(jí)
在xml中RelativeLayout,F(xiàn)rameLayout,靠后的控件顯示在上層。
-
利用margin屬性
margin屬性可以控制控件間的距離,屬性值為正值時(shí),越大離得越遠(yuǎn),越小則離得越近。
所以可以通過給android:layout_marginTop ,android:layout_marginBottom , android:layout_marginLeft ,android:layout_marginRight 。
這四個(gè)屬性設(shè)置為負(fù)數(shù)值,會(huì)讓控件疊加在一起。
-
記住Button的優(yōu)先級(jí)最高
從Android 5.0 開始,在同一個(gè)布局下,Button將總是位于最上層。
產(chǎn)生原因:stateListAnimator 屬性==>Button自帶在點(diǎn)擊時(shí)默認(rèn)有個(gè)陰影的效果用于表示按下的狀態(tài)。
如果想讓Button不覆蓋其他控件,可以使用android:stateListAnimator="@null" ,去掉默認(rèn)點(diǎn)擊的陰影效果,使Button可以被正常的覆蓋。
方案二
調(diào)整布局xml中的重疊控件的 elevation 屬性
示例:
android:elevation="5dp"
例如在 RelativeLayout中使用了 CardView ,即使在靠后使用 Button,還是無法覆蓋 CardView,原因可能是
elevation 屬性的大小問題,將對(duì)應(yīng)的控件的elevation 屬性提高,就可以讓對(duì)應(yīng)控件在疊加關(guān)系中由下層變?yōu)樯蠈印?/p>
方法三
Java代碼中調(diào)用: A.bringToFront(); 讓A顯示出來
|