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的替换规则
测试如下:
1.2 Fragment之间的跳转
非常简单,只需要一行代码
Navigation.findNavController(v).navigate(R.id.action_thisFragment_to_addFragment);
下一篇: php用户注册过滤中文用户名方法