使用样式在工具栏中显示后退按钮

Show Backbutton in Toolbar using styles

我想将工具栏主题传递给我在 AndroidManifest 中的其他库的 class。我在styles.xml中声明的主题如下:

    <style name="MyTheme" parent="AppTheme">
        <item name="homeAsUpIndicator">@drawable/back</item>
        <item name="title">@string/app_name</item>
        <item name="subtitle">@string/app_version</item>
    </style>

然而,在显示该库的 class 时,后退按钮不可见。那么有没有办法在 styles.xml 本身中 setDisplayHomeAsUpEnabled 为真??

 <androidx.appcompat.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/orange"
    app:navigationIcon="@drawable/backbutton"//imp code
    app:title="Check Out"
    android:id="@+id/toolbar_checkout_main">
</androidx.appcompat.widget.Toolbar>

在 xml 中声明 app:navigationicon 并在 java 文件中使用

 toolbar.setNavigationOnClickListener(v -> {
        //on backbutton pressed code//
    });

我们可以使用 navigationIcon 选项来显示使用 styles.xml 的图标。

如果您的目标是 API 21 岁以上,

<item name="android:navigationIcon">@drawable/back</item>

否则,

<item name="navigationIcon">@drawable/back</item>

所以,我的主题应该是,

<style name="MyTheme" parent="AppTheme">
        <item name="colorPrimary">@color/colorAccent</item>
        <item name="title">@string/app_name</item>
        <item name="subtitle">@string/app_version</item>
        <item name="navigationIcon">@drawable/back</item>
</style>