如何在工具栏的左侧添加一个按钮?

Posted

技术标签:

【中文标题】如何在工具栏的左侧添加一个按钮?【英文标题】:How do I add a button to the left side of the toolbar? 【发布时间】:2022-01-05 07:05:00 【问题描述】:

我有两个片段。当我从第一个片段切换到第二个片段时,工具栏上会显示一个后退箭头。如何让主屏幕上没有空白而不是返回箭头,但是有另一个按钮?

工具栏:

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_
    android:layout_
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:minHeight="64dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

两个屏幕:

【问题讨论】:

这能回答你的问题吗? How to change Toolbar Navigation and Overflow Menu icons (appcompat v7)? @BabyishTank,不,“setNavigationIcon()”对我不起作用。 【参考方案1】:

我通过添加自己的按钮解决了这个问题。

<ImageButton
    android:id="@+id/button_settings"
    android:layout_
    android:layout_
    android:background="?attr/actionBarItemBackground"
    app:srcCompat="@drawable/ic_settings" />

请注意,通过指定android:background="?attr/actionBarItemBackground",您可以获得与常规工具栏按钮相同的点击效果。

如果您想在某些屏幕上隐藏您的按钮,请将 addOnDestinationChangedListener 添加到 NavController

navController.addOnDestinationChangedListener  _, destination, _ ->
    binding.buttonSettings.visibility =
        if (destination.id == R.id.account_add_fragment) View.GONE else View.VISIBLE

【讨论】:

以上是关于如何在工具栏的左侧添加一个按钮?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile 工具栏

jQuery Mobile 工具栏

将工具栏添加到 UISplittview 的左侧

将按钮添加到代号一工具栏

Stone教程:如何给网页3D应用程序添加交互热点

Stone教程:如何给网页3D应用程序添加交互热点