高程属性在api> = 27中不起作用

时间:2019-04-12 07:24:23

标签: android android-toolbar android-appbarlayout android-elevation

我在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>

3 个答案:

答案 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