我在相机应用程序中工作,如果我改变我的权限手动设置,回到活动再次给我这个错误/崩溃。
在调用getGraph()之前,必须调用setGraph()。
我使用活动/片段导航库。
导航图:
<?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/guard_nav_graph"
app:startDestination="@id/cameraFragment">
<fragment
android:id="@+id/cameraFragment"
android:name="guard.camera.CameraFragment"
android:label="Camera"
tools:layout="@layout/fragment_guard_camera">
<action
android:id="@+id/action_cameraFragment_to_LocationFragment"
app:destination="@id/LocationFragment"
app:popEnterAnim="@anim/enter_from_left"
app:popExitAnim="@anim/exit_to_right">
<argument
android:name="isLocationAllowed"
app:argType="boolean" />
</action>
<argument
android:name="isEdit"
android:defaultValue="false"
app:argType="boolean" />
</fragment>
</navigation>
Gradle库版本:
implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.1.0'
GuardActivity:
class GuardActivity : ActivityBase() {
private lateinit var binding: ActivityGuardBinding
private val navController: NavController by lazy {
findNavController(R.id.nav_host_fragment)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setTheme(R.style.AppTheme_NoActionBar)
binding = DataBindingUtil.setContentView(this, R.layout.guard)
setSupportActionBar(binding.incToolbar.toolBar)
NavigationUI.setupWithNavController(binding.incToolbar.toolBar, navController)
}
override fun onSupportNavigateUp(): Boolean {
return navController.navigateUp() || super.onSupportNavigateUp()
}
}
XML文件的活动:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".v2.guard.GuardActivity">
<include
android:id="@+id/inc_toolbar"
layout="@layout/fl_toolbar" />
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/inc_toolbar"
app:navGraph="@navigation/guard_nav_graph" />
</androidx.constraintlayout.widget.ConstraintLayout>
###你应该使用最新版本的导航组件。他们在2。3。0中修复了一个相关的问题。
https://developer。android。com/guide/navigation/navigation-getting-started