我在StackOverflow上读到过一些关于这一点的解释,但没有什么帮助。我所做的是使用Android Studio创建一个Navigation Drawer Activity
示例应用,它具有hamburger
导航图标和滑动导航抽屉功能。它运行得很好!
然而,当我将示例应用程序的每个方面都复制到我的应用程序中时,从MainActivity
、AppManifest
、Navigation Map
到theme
设置再到layout
XML,我仍然得到一个血腥的后退箭头和片段标题。
到底是什么代码在控制它?
- 这就是我需要的:**
- 这就是我需要的:**
- 这就是我得到的**
[
]
我担心使用数据绑定可能会破坏AppNavBar设置的某些关联。
- 这是我的主活动. xml**
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
android:id="@+id/app_bar_main"
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/sc_drawer_menu_items" />
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
这是我的MainActivity类。
open class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: MainActivityBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.main_activity)
setSupportActionBar(binding.appBarMain.toolbar)
val drawerLayout: DrawerLayout = binding.drawerLayout
val navView: NavigationView = binding.navView
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment_content_main) as NavHostFragment
val navController = navHostFragment.navController
appBarConfiguration = AppBarConfiguration(
setOf(
R.id.sc_menu_i_inv_count,
R.id.sc_menu_i_work_orders,
R.id.sc_menu_i_ins_queue,
R.id.sc_menu_i_return_queue,
R.id.sc_menu_i_settings,
R.id.sc_menu_i_sign_out,
R.id.sc_menu_image_list_view
), drawerLayout
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main_activity, menu)
return true
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
}
除了对DataBindingUtils进行了一些更改之外,它应该执行与我所理解的相同的操作。
1条答案
按热度按时间ee7vknir1#
找到了解决方案。将此代码添加到我的MainActivity.kt