我使用非常简单的样式来格式化我的工具栏,我使用android:elevation在工具栏下显示阴影,如下所示:
<style
name="AppToolbarTheme"
parent="AppTheme">
<item name="android:background">@color/colorPrimary</item>
<item name="android:titleTextColor">@android:color/white</item>
<item name="android:elevation">4dip</item>
</style>
我就是这么简单地应用它:
<Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppToolbarTheme"/>
阴影显示在我想要的工具栏下面,但它也以某种方式应用于工具栏的标题,看起来很奇怪:
答案 0 :(得分:3)
从样式中删除<item name="android:elevation">4dip</item>
并将其放入toolbar
xml
<Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppToolbarTheme"
android:elevation="4dp"/>
答案 1 :(得分:0)
我正在查看此内容,并帮助我确定了我的错误,我认为这与您的错误相同:
您正在主题中使用样式属性(窗口小部件)。主题用于定义全局属性,例如colorOnSurface, colorSurface, primaryColor
等。在这里,您正在使用:
<item name="android:background">@color/colorPrimary</item>
<item name="android:titleTextColor">@android:color/white</item>
<item name="android:elevation">4dip</item>
特定于工具栏。
我建议定义如下样式(您可以设置所需的任何父项,只要它是Widget.whatever.Toolbar)
<style name="Widget.Toolbar" parent="Widget.MaterialComponents.Toolbar.Surface">
<item name="elevation">4dp</item>
</style>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.Toolbar"/>
此刻我正在使用appbar,因此您可以在其中应用海拔高度:
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:theme="@style/Theme.AppBarTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.appbar.AppBarLayout>
<style name="Theme.AppBarTheme">
<item name="elevation">6dp</item>
<item name="toolbarStyle">@style/Widget.Toolbar</item>
</style>
<style name="Widget.Toolbar" parent="Widget.MaterialComponents.Toolbar.Surface">
<item name="android:titleTextColor">@android:color/white</item>
</style>
答案 2 :(得分:0)
你使用
android:theme="@style/AppToolbarTheme"
在您的工具栏中,在这种情况下,它还会为嵌套组件添加高度,因为您定义了一个主题。
使用
style="@style/AppToolbarTheme"
相反。