0


Android Navigation 导航切换fragment用法

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

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

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

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

<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/fragment1"><fragment
        android:id="@+id/fragment1"
        android:name="com.example.Fragment1"
        android:label="Fragment 1"
        tools:layout="@layout/fragment1"/><fragment
        android:id="@+id/fragment2"
        android:name="com.example.Fragment2"
        android:label="Fragment 2"
        tools:layout="@layout/fragment2"/></navigation>

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

<fragment
    android:id="@+id/nav_host_fragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:defaultNavHost="true"
    app:navGraph="@navigation/nav_graph"/>

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

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);
        navController = navHostFragment.getNavController();}@OverridepublicbooleanonSupportNavigateUp(){// 处理导航返回事件return navController.navigateUp()||super.onSupportNavigateUp();}}

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

Button button = view.findViewById(R.id.button);
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用法”的评论:

还没有评论