Android 带有后退按钮、标题、带有图标和文本的菜单项的工具栏,以编程方式更新菜单项文本

Android 带有后退按钮、标题、带有图标和文本的菜单项的工具栏,以编程方式更新菜单项文本,android,android-actionbar,Android,Android Actionbar,我需要一个类似于此图像的操作栏 操作栏应该有--“后退按钮在左角,活动标题在中间,在操作栏的右角有几个菜单项。” 我尝试过使用此选项将ImageButton与左侧对齐,但它隐藏了标题 如果我使用菜单项,则左上角的“后退”按钮将丢失 自定义布局: 菜单项: 我怎样才能达到所有这些要求的行动栏 编辑 回答: 我想可以分三步完成: 如接受答案中所述,添加toolbar.setDisplayHomeAsUpEnabled(true) 添加后退按钮 通过工具栏添加标题和子标题。添加标题(“文本”)和

我需要一个类似于此图像的操作栏

操作栏应该有--“后退按钮在左角,活动标题在中间,在操作栏的右角有几个菜单项。”

我尝试过使用此选项将
ImageButton
与左侧对齐,但它隐藏了标题

如果我使用菜单项,则左上角的“后退”按钮将丢失

  • 自定义布局:
  • 菜单项:
  • 我怎样才能达到所有这些要求的行动栏

    编辑

    回答:

    我想可以分三步完成:

  • 如接受答案中所述,添加
    toolbar.setDisplayHomeAsUpEnabled(true)
    添加后退按钮
  • 通过
    工具栏添加标题和子标题。添加标题(“文本”)
    工具栏。添加副标题(“文本”)
  • 对于右侧可见的图标:
    默认情况下,菜单图标位于右侧。如果希望它们在
    工具栏中可见,则在
    菜单项中添加
    android:showAsAction=“always”

    如果它的值设置为“从不”,则
    项将添加到这三个点中

  • 回答(4年后)

  • 后退按钮、标题和内部溢出按钮在前面有说明
  • 现在,对于带有文本的图标并以编程方式更新该文本-->
    app:actionLayout=“@layout/filter\u icon”
  • menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <item
            android:id="@+id/clear"
            android:title="Clear"
            app:showAsAction="always" />
    
        <item
            android:id="@+id/filter"
            android:title="Filter"
            app:actionLayout="@layout/filter_icon"
            app:showAsAction="always" />
    
        <item
            android:title="Option"
            app:showAsAction="never" />
    </menu>
    
    <?xml version="1.0" encoding="utf-8"?>
    
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableStart="@drawable/ic_filter"
        android:text="0"
        android:gravity="bottom"
        android:padding="8dp"
        android:textColor="@color/colorWhite"
        android:textSize="14sp" />
    
    结果

    更新后


    当然,您不需要为您的需求实现自定义布局。工具栏是您所需要的

    我可以从你的图片中看到,你给了后退按钮一个图片,这不是应该怎么做的。您只需在清单文件的activity标记下提及父活动,如下所示:

    android:parentActivityName=“com.example.myapp.MainActivity”

    然后在活动类中编写此代码(也可以使用工具栏代替ActionBar)

    ActionBar ActionBar=getActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true)

    “后退”按钮会自动出现。然后您可以添加菜单项,菜单项将显示在右侧


    更多参考指南。

    感谢您提供@deepu513链接。但这不是我的要求。在教程中,菜单项被添加到工具栏中,默认情况下,工具栏将添加到右角。我需要在右角添加一个项,因为仅包含外部链接的答案不好。如果链接失效会发生什么?@m0skit0我知道,但我现在在办公室,答案相当大,所以我给了他链接。@deepu513我将在您修复它时删除downvote。@deepu513另一个查询..正如您可以看到购物车图像和上面的数字(指示购物车中的项目数量),我通过使用布局和单独的图像并在其上设置文本来实现这一点。。对于本页,默认主页不起作用。独自研究和尝试是一个良好的开端。@m0skit0我没有在未搜索的情况下发布此问题。我参考了这么多教程中的20-30个答案,但没有找到任何相关内容。真的吗?第一次搜索第一次成功:我有一个我提到的答案列表,但这一个不在其中。@m0skit0对于一个6个月前开始编码的开发人员来说,这是非常困难的。艰难的道路。神奇之旅:D
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.filter_menu, menu)
        countView = menu?.findItem(R.id.filter)?.actionView as TextView
    
        return super.onCreateOptionsMenu(menu)
    }
    
    fun updateMenuCount() {
        countView?.text = "${selectedCategoryHierarchy.size} "
    }