android - 我在 Play 商店中启动应用程序后,片段工具栏后退按钮未显示
问题描述
这是我在 google play 中的第一个应用程序版本。我在这个项目中使用 MVVM 架构。我正在使用 android JetPACK 的导航。所以,我有一个活动,其余的都是片段。当我使用 android studio 运行我的应用程序时,它在工具栏中显示后退按钮,但是当我从 Play 商店下载我的应用程序时,它没有显示后退按钮。它像后退按钮一样工作,但后退按钮图标不存在。我不知道为什么会这样。
这是使用的代码活动
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"/>
解决方案
根据Navigation 1.0.0-beta01 发行说明:
修复了使用带有混淆的 ProGuard 时,NavigationUI 处理的后退箭头不会出现的问题。b/123449431
所以升级到最新版本——目前1.0.0-rc02
。
推荐阅读
- c# - 返回 http 响应的自定义属性
- arrays - Excel - 检索数组中的值
- c# - 来自现场设备的 UDP 数据包不会通过 azure 基础架构提供给我的服务
- avr-gcc - AVR 构建期间未定义的引用,链接器错误
- excel - 将所有工作表中指定范围的空白单元格替换为 0
- coin-or-cbc - CBC Hangs After Finding Optimal Solution
- java - jar 没有在命令提示符下提供输出,但在 eclipse 中工作正常
- reactjs - 如何使用 Jest 正确模拟 React Navigation 的 getParam 方法
- c# - 实体框架 6:包括嵌套的可空多对多子
- c++ - 唯一指针映射,带有原始指针的 .at()