我想使RTL为appBarConfiguration。这是我的MainActivity代码。有什么方法可以帮助我在不使用自定义工具栏或进行一些自定义操作的情况下执行此操作?我搜索发现这是android文档:[navigation-ui] [1]但是如果有类似的东西,我会寻找一些简单的东西,例如布局方向]
MainActivity类:
private lateinit var drawerLayout: DrawerLayout private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main) drawerLayout = binding.drawerLayout val navController = this.findNavController(R.id.navHostFragment) appBarConfiguration = AppBarConfiguration(navController.graph, drawerLayout) NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout) navController.addOnDestinationChangedListener { nc: NavController, nd: NavDestination, _: Bundle? -> if (nd.id == nc.graph.startDestination) { drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) } else { drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) } } NavigationUI.setupWithNavController(binding.navView, navController) } override fun onSupportNavigateUp(): Boolean { val navigationController = findNavController(R.id.navHostFragment) return navigationController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } override fun onBackPressed() { if (drawerLayout.isDrawerOpen(GravityCompat.START)) { drawerLayout.closeDrawer(GravityCompat.START) } else { return super.onBackPressed() } } }
以及此处的activity_main.xml:
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutDirection="rtl"
tools:openDrawer="start"
tools:context=".MainActivity">
<fragment
android:id="@+id/navHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/navigation"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/drawer_menu"
app:headerLayout="@layout/fragment_cart"
/>
</androidx.drawerlayout.widget.DrawerLayout>
</layout>```
[![now it's look like this:][2]][2]
I wanna hamberger menu place in right and that three icon place in left
[1]: https://developer.android.com/guide/navigation/navigation-ui#kotlin
[2]: https://i.stack.imgur.com/eOur8.png
我想使RTL为appBarConfiguration。这是我的MainActivity代码。有什么方法可以帮助我在不使用自定义工具栏或进行一些自定义操作的情况下执行此操作?我搜索发现这是...
我可以通过在activity_main.xml和MainActivity.kt中添加此部分来解决此问题