如何给控件设置阴影?
<com.google.android.material.tabs.TabLayout android:id="@+id/tablayout" android:layout_width="0dp" android:layout_height="56dp" android:elevation="10dp" android:background="@color/white"> </com.google.android.material.tabs.TabLayout>
android:elevation="10dp"属性是关键,代码中可以View.setElevation设置控件阴影
如何给取消控件阴影?
android:elevation="0dp" 设置为0就已经取消了控件的阴影.但是这里Button有一个坑...
关于Button坑
在Android5.1之后Button控件其实是强制保持在所有控件最上面的,android:elevation="0dp" 无法让Button的强制最上层属性被改变.这个时候需要就需要android:stateListAnimator="@null"这个属性.
为什么设置后没有阴影?
- 控件必须设置背景色,且不能为透明。
- 阴影是绘制于父控件上的,所以控件与父控件的边界之间需有足够空间绘制出阴影才行。
- 设置elevation的View最好是ViewGroup子类