Это мой первый выпуск приложения в Google Play.Я использую архитектуру MVVM в этом проекте.Я использую НАВИГАЦИЯ Android JETPACK.Итак, у меня одно занятие, а остальные - фрагменты.Когда я запускаю свое приложение в Android Studio, на панели инструментов отображается кнопка «Назад», но при загрузке приложения из магазина воспроизведения кнопка «Назад» не отображается.Он работает как кнопка «Назад», но значок кнопки «Назад» отсутствует.Я понятия не имею, почему это происходит.
Вот используемые коды. Activity
class SchoolDiaryMainActivity : AppCompatActivity() {
private var drawerLayout: DrawerLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_school_diary_main)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
setSupportActionBar(toolbar)
val host: NavHostFragment =
supportFragmentManager
.findFragmentById(R.id.my_nav_host_fragment) as NavHostFragment? ?: return
val navController = host.navController
setupActionBar(navController)
setupNavigationMenu(navController)
}
private fun setupActionBar(navController: NavController) {
drawerLayout = findViewById(R.id.drawer_layout)
NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
}
private fun setupNavigationMenu(navController: NavController) {
findViewById<NavigationView>(R.id.nav_view)?.let { navigationView ->
NavigationUI.setupWithNavController(navigationView, navController)
}
}
override fun onSupportNavigateUp(): Boolean {
return NavigationUI.navigateUp(
drawerLayout,
Navigation.findNavController(this, R.id.my_nav_host_fragment)
)
onBackPressed()
return true
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val retValue = super.onCreateOptionsMenu(menu)
menuInflater.inflate(R.menu.menu_empty, menu)
return retValue
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return NavigationUI.onNavDestinationSelected(
item,
Navigation.findNavController(this, R.id.my_nav_host_fragment)
)
|| super.onOptionsItemSelected(item)
}
}
// activity_school_diary_main
<androidx.drawerlayout.widget.DrawerLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout"
tools:context=".activities.SchoolDiaryMainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:fitsSystemWindows="true"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
app:titleTextAppearance="@style/Toolbar.TitleText"/>
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/nav_graph"
app:defaultNavHost="true"/>
</LinearLayout>
<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|left"
app:menu="@menu/menu_nav_drawer"/>
</androidx.drawerlayout.widget.DrawerLayout>
Некоторая часть nav_graph, которую я использовал для подключенияфрагменты как часть правила навигации android jetpack
<?xml version="1.0" encoding="utf-8"?>
<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/diaryMainFrag">
<fragment android:id="@+id/testFragmentOne" android:name="amit.diary.studentdiaryentryTwo.fragments.TestFragmentOne"
android:label="af_test_one" tools:layout="@layout/af_test_one"/>
<fragment android:id="@+id/diaryMainFrag" android:name="amit.diary.studentdiaryentryTwo.fragments.DiaryMainFrag"
android:label="af_diary_main" tools:layout="@layout/af_diary_main">
<action android:id="@+id/action_diaryMainFrag_to_homeworkFrag" app:destination="@id/homeworkFrag"/>
За исключением того, что внутри фрагмента нет строки кода для управления панелью инструментов.Я не думаю, что в навигации в любом месте его там для кнопки мне нужен код в моем фрагменте.