這個(gè)是因?yàn)锳ndroid 5.0之后引入了一個(gè)Material Design的概念:
https://developer.android.com/training/material/shadows-clipping.html?hl=zh-cn
視圖的 Z值包含兩個(gè)組件:
高度(Elevation):靜態(tài)組件药版。Elevation
轉(zhuǎn)換(Translation):用于動畫的動態(tài)組件喻犁。
Z = elevation + translationZ
這里TranslationZ就是指的在Z軸上面的轉(zhuǎn)換何缓,注意轉(zhuǎn)換碌廓,主要是用于動畫的動態(tài)的組件剩盒,例如Button,它在按下去的時(shí)候是0dp的高度,正常的狀態(tài)下是6dp的高度纪挎。所以Z = elevation + translationZ跟匆;
解決辦法:
1: 給最上面的TextView設(shè)置一個(gè)TranslationZ或者是Elevation設(shè)置一個(gè)高的值,這個(gè)值要比上面測試的結(jié)果6+3=9大烤蜕,就是至少10
就是上面的公式:Z = elevation + translationZ
這里TextView的Z值一定要比Button的Z值要大
android:elevation="10dp"
android:translationZ="10dp"
// 或者
if(Build.VERSION.SDK_INT>21) {
upTextView.setElevation(10);
upTextView.setTranslationZ(10);
}
2.2: 將Button的動畫的StateListAnimation設(shè)置為null垢揩,因?yàn)槿绻麑utton的StateListAnimation 取消了Translation就會變成0了
android:stateListAnimator="@null"