在 Play 商店中启动应用程序后,片段工具栏后退按钮未显示
Fragment toolbar back button is not showing after i launched the app in play store
这是我在 google 游戏中发布的第一个应用程序。我在这个项目中使用 MVVM 架构。我正在使用 android JETPACK 的导航。所以,我有一个 activity 其余的都是片段。当我 运行 我的应用程序与 android studio 一起时,它在工具栏中显示后退按钮,但是当我从 Play 商店下载我的应用程序时,它不显示后退按钮。它的工作方式类似于后退按钮,但后退按钮图标不存在。我不知道为什么会这样。
这是使用的代码
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"/>
除了fragment内部没有控制工具栏的代码行。我不认为在导航的任何地方它那里的后退按钮我需要我的片段中的代码。
根据 Navigation 1.0.0-beta01 release notes:
Fixed an issue where the NavigationUI handled back arrow would not appear when using ProGuard with obfuscation. b/123449431
所以升级到最新版本 - 当前 1.0.0-rc02
。
这是我在 google 游戏中发布的第一个应用程序。我在这个项目中使用 MVVM 架构。我正在使用 android JETPACK 的导航。所以,我有一个 activity 其余的都是片段。当我 运行 我的应用程序与 android studio 一起时,它在工具栏中显示后退按钮,但是当我从 Play 商店下载我的应用程序时,它不显示后退按钮。它的工作方式类似于后退按钮,但后退按钮图标不存在。我不知道为什么会这样。
这是使用的代码 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"/>
除了fragment内部没有控制工具栏的代码行。我不认为在导航的任何地方它那里的后退按钮我需要我的片段中的代码。
根据 Navigation 1.0.0-beta01 release notes:
Fixed an issue where the NavigationUI handled back arrow would not appear when using ProGuard with obfuscation. b/123449431
所以升级到最新版本 - 当前 1.0.0-rc02
。