下一章:Android——Fragment 新手教学第四章 启动与销毁Fragment(继承篇)

让你在开发中爱不释手的 GT 包。关注GSLS官网,查看更多源码 ヾ(✿゚▽゚)ノ工具包。

所有文章 小编尽量让读者可以 直接 读懂 完全 复制粘贴,其中复杂或较多 的源码 会有 源码 并 贴上 github 网址

GT 类 里面的源码完全开源较多的中文注释,让更多的人直接读懂。

点个关注点个赞呗(〃'▽'〃),关注博主最新发布库: https://github.com/1079374315/GSLS_Tool

美帝 框架,让创造变得如此简单! 

上一章节:Android——Fragment 新手教学第三章 使用创建好的 Fragment

上节的效果图:

下一章:Android——Fragment 新手教学第四章 启动与销毁Fragment(继承篇)_第1张图片

 

跟着上一次的教程来,上一篇我们介绍到了如何使用创建好的 Fragment 本章节将介绍如何在 Fragment 之间切换的。

首先我们要在这个红色页面上的添加一个单击按钮,用于跳转页面。

布局文件 fragment_a.xml



    
    

修改对应的业务逻辑代码  Fragment_A.java

//使用 继承 BaseFragments 类的方式创建 Fragment
public class Fragment_A extends GT.GT_Fragment.BaseFragments {

    @Override
    protected int loadLayout() {
        return R.layout.fragment_a;//加载布局
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {
        //初始化 UI

        //跳转页面
        view.findViewById(R.id.btn_a).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //不带参数的 启动 Fragment
                startFragment(Fragment_B.class);

                //带从参数的 启动 Fragment
//                Bundle bundle = new Bundle();
//                bundle.putString("name","小明");
//                startFragment(Fragment_B.newInstance(bundle));

            }
        });

    }

    @Override
    protected void loadData() {
        super.loadData();

    }
}

带参数与不带参数的 切换 Fragment 方式有没有觉得非常像 Activity 之间的切换方式呢。

关键代码就是使用  startFragment 方法直接传入 Fragment的class 或者 Fragment 的对象即可完成切换。

实现效果图如下:

下一章:Android——Fragment 新手教学第四章 启动与销毁Fragment(继承篇)_第2张图片

 

如果此时你 注释掉 不带参的方法, 解开了 带参数的 切花方式,你会发现有报红的代码,不急,我们接下来就来添加这些报红的方法。

我们给 fragment_b.xml 增加一个显示传递过来的参数的组件:




    
    

我们再给 Fragment_B.java 类添加 接收参数的代码:

//使用 继承 AnnotationFragment 类的方式创建 Fragment
@GT.Annotations.GT_AnnotationFragment(R.layout.fragment_b) //加载布局
public class Fragment_B extends GT.GT_Fragment.AnnotationFragment {

    private TextView tv_name;

    // 实例化 Fragment 并接收传过来的参数
    public static Fragment_B newInstance(Bundle bundle) {
        Fragment_B fragment = new Fragment_B();
        fragment.setArguments(bundle);
        return fragment;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {
        //初始化 UI
        tv_name = view.findViewById(R.id.tv_name);
    }

    @Override
    protected void loadData() {
        super.loadData();
        //业务逻辑处理
        //获取传过来的参数
        Bundle bundle = getArguments();
        if (bundle != null) {
            String name = bundle.getString("name");
            tv_name.setText("我的名字:" + name);
        }
    }
}

接下来我们来看看效果图:

下一章:Android——Fragment 新手教学第四章 启动与销毁Fragment(继承篇)_第3张图片

重写 newInstance 方法来进行传参是安全可靠的。

我们已经知道了怎么 启动一个新的 Fragment 现在我们来看看怎么 销毁一个 Fragment 

销毁Fragment 只需要在想要销毁的 Fragment 调用  finish(); 方法即可,我们来修改一下代码:

Fragment_B.java

@GT.Annotations.GT_AnnotationFragment(R.layout.fragment_b) //加载布局
public class Fragment_B extends GT.GT_Fragment.AnnotationFragment {

    private TextView tv_name;

    // 实例化 Fragment 并接收传过来的参数
    public static Fragment_B newInstance(Bundle bundle) {
        Fragment_B fragment = new Fragment_B();
        fragment.setArguments(bundle);
        return fragment;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {
        //初始化 UI
        tv_name = view.findViewById(R.id.tv_name);
    }

    @Override
    protected void loadData() {
        super.loadData();
        //业务逻辑处理

        //获取传过来的参数
        Bundle bundle = getArguments();
        if (bundle != null) {
            String name = bundle.getString("name");
            tv_name.setText("我的名字:" + name);
        }

        //给显示的结果设置单击事件 并 单击后销毁当前 Fragment
        tv_name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();//销毁当前 Fragment 页面
            }
        });

    }

}

效果图如下:

下一章:Android——Fragment 新手教学第四章 启动与销毁Fragment(继承篇)_第4张图片

 

单击文本框的时候没有什么按下效果,不过还是销毁了当前的 Fragment

 

下一章:Android——Fragment 新手教学第五章 恢复数据与监听返回Fragment

你可能感兴趣的:(GT_Fragment,教程)