首页 > 解决方案 > 当我使用底部导航视图时,如何从主页片段的操作栏中删除后退箭头

问题描述

我为每个带有标签的片段创建了三个片段和工具栏。我使用向上导航在主片段和其他片段之间切换。我的问题是,在主要片段中,我想从工具栏中删除后退箭头。我actionBar?.setDisplayHomeAsUpEnabled(false)在主要活动上试过这个,但没有用。请帮帮我

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val bottomNavView = bottom_nav
    val navController = findNavController(R.id.fragment_nav_host)

    setSupportActionBar(toolbar)
    val actionBar = supportActionBar

    val appbarConfig = AppBarConfiguration(setOf(R.layout.fragment_home,R.layout.fragment_favorite,R.layout.fragment_profile))

    setupActionBarWithNavController(navController,appbarConfig)

    bottomNavView.setupWithNavController(navController)
}

override fun onSupportNavigateUp(): Boolean {
    val navController = this.findNavController(R.id.fragment_nav_host)
    return navController.navigateUp()
}

}

这是 activity_main 布局上的工具栏代码

<androidx.appcompat.widget.Toolbar
     android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:theme="@style/toolbarTheme"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary" />

截图

标签: androidandroid-actionbarback-buttonbottomnavigationview

解决方案


您需要禁用操作栏的主页按钮,如下所示

   setSupportActionBar(toolbar)
   val actionBar = supportActionBar
        if (actionBar != null) {
            actionBar?.setDisplayShowHomeEnabled(false);
            actionBar?.setHomeButtonEnabled(false);
        }

推荐阅读