【发布时间】:2020-06-17 18:38:34
【问题描述】:
请帮帮我。
简介:我使用导航组件,单活动模式,通过底部导航菜单切换了 3 个片段。我也有抽屉导航。
所有片段都处于同一级别(都是根,直接从底部导航访问)
事情应该是这样的:对于所有片段,必须有一个带有汉堡图标的工具栏用于抽屉。
问题:应用启动时,home fragment 显示抽屉的标准汉堡图标,这没问题。但是当我切换到任何其他片段时,抽屉图标变成箭头图标。
此外,当按下箭头时,抽屉从左侧滑动。这意味着它仍可用作显示抽屉菜单的按钮,但仅更改了图标。
问题:如何禁用转换从底部导航菜单切换到另一个片段时,将汉堡图标转换为箭头图标?
文件:
导航图:
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/bottom_nav_proposals"
>
<fragment
android:id="@id/bottom_nav_proposals"
android:name="com.base.ProposalsContainerFragment"
android:label="fragment_proposals"
tools:layout="@layout/fragment_proposals" />
<fragment
android:id="@id/bottom_nav_vehicles"
android:name="com.base..DriversVehiclesFragment"
android:label="Vehicles" >
</fragment>
<fragment
android:id="@id/bottom_nav_drivers"
android:name="com.bijov1apps.base.carrier.root.drivers.DriversVehiclesFragment"
android:label="Drivers" >
</fragment>
</navigation>
活动:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//initializing Navigation COmponent
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_carrier_root) as NavHostFragment
val navController = navHostFragment.navController
//setting up toobar stuff
val toolbar: Toolbar = findViewById(R.id.toolbar_root)
toolbar.setupWithNavController(navController, drawerLayout)
//setting up navigation drawer stuff
val drawerLayout:DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val toggle = ActionBarDrawerToggle(
this, drawerLayout, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close
)
drawerLayout.addDrawerListener(toggle)
toggle.syncState()
navView.setNavigationItemSelectedListener(this)
//setting up bottom navigation menu stuff
val bottomNavigationView = findViewById<BottomNavigationView>(R.id.logisticBottomBar)
bottomNavigationView.setupWithNavController(navController)
}
【问题讨论】:
-
确保
Navigation Graph和菜单 XML 文件中的 ID 匹配。有关详细信息,请参阅此视频:youtu.be/wv5VFEcnb-8?t=217(视频将从他解释 ID 时的正确时间戳开始)。 -
根据developer.android.com/guide/navigation/… 最新版本的导航抽屉与顶部栏重叠,汉堡图标或后退箭头甚至不应该是可见的。
-
@RenéSpies,一切正常,所有 ID 都匹配
-
仔细听视频中的人怎么说。您使用的
@+id/在您的情况下是错误的。 -
@ich5003 问题是关于隐藏抽屉菜单时工具栏中的图标。
标签: android kotlin navigation-drawer hamburger-menu android-navigation-graph