Android控制元件重疊顯示小記
阿新 • • 發佈:2020-05-05
### 方案一
1. **利用佈局控制元件顯示優先順序**
在xml中RelativeLayout,FrameLayout,靠後的控制元件顯示在上層。
2. **利用margin屬性**
margin屬性可以控制控制元件間的距離,屬性值為正值時,越大離得越遠,越小則離得越近。
所以可以通過給`android:layout_marginTop` ,`android:layout_marginBottom`, `android:layout_marginLeft` ,`android:layout_marginRight`。
這四個屬性設定為**負數值**,會讓控制元件疊加在一起。
3. **記住Button的優先順序最高**
從Android 5.0 開始,在同一個佈局下,Button將總是位於最上層。
產生原因:`stateListAnimator`屬性==>Button自帶在點選時預設有個陰影的效果用於表示按下的狀態。
如果想讓Button**不覆蓋其他控制元件**,可以使用`android:stateListAnimator="@null"`,去掉預設點選的陰影效果,使Button可以被正常的覆蓋。
### 方案二
調整佈局xml中的重疊控制元件的 `elevation` 屬性
示例:
```
android:elevation="5dp"
```
例如在 RelativeLayout中使用了 **CardView** ,即使在靠後使用 **Button**,還是無法覆蓋 **CardView**,原因可能是
**elevation** 屬性的大小問題,將對應的控制元件的elevation 屬性提高,就可以讓對應控制元件在疊加關係中由下層變為上層。
### 方法三
Java程式碼中呼叫: `A.bringToFront();`讓A顯