0


Android Navigation 导航切换fragment用法

对于Android Navigation组件的导航到Fragment,您可以按照以下步骤操作:

首先,在您的项目的build.gradle文件中添加Navigation依赖:

  1. dependencies {
  2. def nav_version ="2.3.4"
  3. implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  4. implementation "androidx.navigation:navigation-ui-ktx:$nav_version"}

在你的res目录下的navigation文件夹中创建一个nav_graph.xml文件,并定义您的导航图。

  1. <navigation xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:id="@+id/nav_graph"
  5. app:startDestination="@id/fragment1"><fragment
  6. android:id="@+id/fragment1"
  7. android:name="com.example.Fragment1"
  8. android:label="Fragment 1"
  9. tools:layout="@layout/fragment1"/><fragment
  10. android:id="@+id/fragment2"
  11. android:name="com.example.Fragment2"
  12. android:label="Fragment 2"
  13. tools:layout="@layout/fragment2"/></navigation>

在您的布局文件中,添加NavHostFragment作为导航的目标。

  1. <fragment
  2. android:id="@+id/nav_host_fragment"
  3. android:name="androidx.navigation.fragment.NavHostFragment"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. app:defaultNavHost="true"
  7. app:navGraph="@navigation/nav_graph"/>

在您的Activity中,设置导航控制器并处理导航事件。

  1. publicclassMainActivityextendsAppCompatActivity{privateNavController navController;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取NavHostFragment和导航控制器NavHostFragment navHostFragment =(NavHostFragment)getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
  2. navController = navHostFragment.getNavController();}@OverridepublicbooleanonSupportNavigateUp(){// 处理导航返回事件return navController.navigateUp()||super.onSupportNavigateUp();}}

现在,您可以在您的代码中使用导航控制器来进行导航。例如,在Fragment中使用findNavController()方法获取导航控制器,并使用navigate()方法导航到其他Fragment。

  1. Button button = view.findViewById(R.id.button);
  2. button.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(View v){Navigation.findNavController(v).navigate(R.id.fragment2);}});

这样就可以通过使用导航组件实现在Fragment之间的导航了。您可以根据自己的需求在导航图中定义多个Fragment,以及在代码中设置不同的导航操作。

标签: android

本文转载自: https://blog.csdn.net/mhhyoucom/article/details/132207766
版权归原作者 一航jason 所有, 如有侵权,请联系我们删除。

“Android Navigation 导航切换fragment用法”的评论:

还没有评论