首先,我们得知道fragement依赖于activity
fragment的切换就跟栈一样,进栈出栈。
我们先创建两个Fragment
这两个方法不要勾选:工厂方法和接口回调。如果勾选的话,会闲的内容特别乱。所以建议不要勾选。
在日常开发中,我们大多都是底部导航栏然后进行fragment的切换。
这次做的是跟栈一样的。
创建两个fragement之后,在res目录下创建navigation文件,会自动为你创建包
然后可以从顶部工具栏添加刚刚的两个fragment
将其按照你的顺序排列连起来,左边可以设置哪个fragment是第一个,也就是底部那一个。点击线段右边可以设置切换时的动画。点进去看xml代码。吗,每一个fragment内部都有一个action标签,也代表了连线切换到哪个fragment
注意到,左边上边有一个Host,那代表的是这些fragement依赖的是哪个activity
由于只有一个fragment组,直接用用图形化编程可以直接完成也可以通过代码的形式。
直接将该组件拖如ConstrainLayout里面。
或者:
<fragment
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/my_navigation" />
完成以上的内容,再添加点击事件进行切换即可完成该练习:
首先看第一个fragment的代码:
public class HomeFragment extends Fragment {
@Override
public