看完Demo,写个例子练手吧。
基础配置就不提了,和官方文档上提及的一样。
首先设计跳转结构。
总共七个碎片,A-G。具体逻辑图上可看出,分别包含了碎片跳碎片,碎片跳activity,两个碎片跳转到相同碎片等类型动作。
主界面如图。图中显示的是A Fragment的布局。
首先我们看看Activity内的配置。
NavHostFragment host = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_nav_test);
NavController navController = host.getNavController();
navController.addOnNavigatedListener(new NavController.OnNavigatedListener() {
@Override
public void onNavigated(@NonNull NavController controller, @NonNull NavDestination destination) {
String dest = getResources().getResourceName(destination.getId());
Toast.makeText(NavigationDemoTestActivity.this , "Navigated to " + dest , Toast.LENGTH_SHORT ).show();
}
});
activity布局:
<fragment
android:id="@+id/fragment_nav_test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="androidx.navigation.fragment.NavHostFragment"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app: