我在AppBarLayout上设置了height属性,它在api 21到26之间起作用,但是阴影未显示在设备上,模拟器在api> = 27上运行。
AppBarLayout或height属性是否有变化?
这是我使用代码的方式-
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="8dp"
app:theme="@style/ThemeOverlay.MaterialComponents.Dark">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"
app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
</com.google.android.material.appbar.AppBarLayout>
答案 0 :(得分:0)
StateListAnimator
。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StateListAnimator stateListAnimator = new StateListAnimator();
stateListAnimator.addState(new int[0], ObjectAnimator.ofFloat(appBarLayout, "elevation", 0.1f));
appBarLayout.setStateListAnimator(stateListAnimator);
}
OR
android:background="@android:color/white"
android:elevation="10dp"
希望它能起作用!
答案 1 :(得分:0)
尝试使用名称空间为app的app:elevation属性
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="8dp"
app:theme="@style/ThemeOverlay.MaterialComponents.Dark"/>
答案 2 :(得分:0)
删除 <application android:hardwareAccelerated="false"/>
如果存在于 AndroidManifest.xml