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

以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为例_第1张图片
Fragment 与 Activity之间的完美跳转——Navigation为例_第2张图片

1.2 Fragment之间的跳转

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

Navigation.findNavController(v).navigate(R.id.action_thisFragment_to_addFragment);

你可能感兴趣的:(Android)