android:提升应用于工具栏及其标题

时间:2017-06-03 17:54:49

标签: android

我使用非常简单的样式来格式化我的工具栏,我使用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"/>

阴影显示在我想要的工具栏下面,但它也以某种方式应用于工具栏的标题,看起来很奇怪:

enter image description here

3 个答案:

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

相反。