欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Fragment 与 Activity之间的完美跳转——Navigation为例

程序员文章站 2022-05-14 10:03:28
...

以Navigation为例介绍Fragment 跳转到指定Fragment ,Fragment 与Activity之间的跳转。

亲测replace()方法不好使,会出现叠影。

1 多个 Fragment 共用一个Activity

1.1 Activity中加载指定 Fragment(跳转到指定Fragment)

在Navigation布局文件中配置 标签:
从nav_home跳转到nav_add Fragment

<fragment
        android:id="@+id/nav_home"
        android:name="com.qq1962976634.littlesecret.ui.home.HomeFragment"
        android:label="@string/menu_home"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_thisFragment_to_addFragment"
            app:destination="@id/nav_add" />
    </fragment>


    <fragment
        android:id="@+id/nav_add"
        android:name="com.qq1962976634.littlesecret.ui.add.addFragment"
        android:label="@string/menu_add"
        tools:layout="@layout/fragment_add">
        <action
            android:id="@+id/action_thisFragment_to_addFragment"
            app:destination="@id/nav_add" />

    </fragment>

接着在Activity里写一个监听事件用于测试:

public void onClick(View view) {

                NavController navController = Navigation.findNavController(MainActivity.this, R.id.nav_host_fragment);
                navController.navigate(R.id.action_thisFragment_to_addFragment);
    
            }

findNavController()第一个参数为载体Activity,第二个参数为fragment容器
navController.navigate() 为fragment的替换规则

测试如下:
Fragment 与 Activity之间的完美跳转——Navigation为例
Fragment 与 Activity之间的完美跳转——Navigation为例

1.2 Fragment之间的跳转

非常简单,只需要一行代码

Navigation.findNavController(v).navigate(R.id.action_thisFragment_to_addFragment);
相关标签: Android