Кнопка «Назад» на панели инструментов фрагмента не отображается после запуска приложения в магазине Play. - PullRequest
0 голосов
/ 25 февраля 2019

Это мой первый выпуск приложения в 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"/>

За исключением того, что внутри фрагмента нет строки кода для управления панелью инструментов.Я не думаю, что в навигации в любом месте его там для кнопки мне нужен код в моем фрагменте.Google play app image

Android studio app image

1 Ответ

0 голосов
/ 25 февраля 2019

В соответствии с примечаниями к выпуску Navigation 1.0.0-beta01 :

Исправлена ​​ошибка, из-за которой навигационная стрелка NavigationUI не отображалась при использовании ProGuard с обфускацией. b / 123449431

Так что обновитесь до последней версии - в настоящее время 1.0.0-rc02.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...