• Android_Fragment


    Fragment是依赖于Activity的,不能独立存在的。

    一个Activity里可以有多个Fragment。

    一个Fragment可以被多个Activity重用。

    Fragment有自己的生命周期,并能接收输入事件。

    我们能在Activity运行时动态地添加或删除Fragment。

     

    Fragment的优势有以下几点:

    模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。

    可重用(Reusability):多个Activity可以重用一个Fragment。

    可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。

     

    通过Fragment.newInstance()方法可实现对Fragment的构造方法。

    public static AFragment newInstance(String s) {
        Bundle args = new Bundle();
        args.putString("title",s);
        AFragment fragment = new AFragment();
        fragment.setArguments(args);
        return fragment;
    }

    通过getArguments可调用该方法传来的参数

     

     

     

    通过hide+add方法可解决返回栈中replace方法对原Fragment的销毁重构

    Fragment fragment=getActivity().getSupportFragmentManager().findFragmentByTag("a");
        if (getActivity().getSupportFragmentManager().findFragmentByTag("a")!=null){
            getActivity().getSupportFragmentManager().beginTransaction().hide(fragment).add(R.id.frame,new BFragment()).addToBackStack(null).commitAllowingStateLoss();
        }else
        getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.frame,new BFragment()).addToBackStack(null).commitAllowingStateLoss();
    }

     

     

    Fragment向Activity的信息传递推荐使用接口实现

    public interface OnClick{
        void onClick(String text);
    }


    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        onClick=(OnClick)context;
    }

     

  • 相关阅读:
    [Taro] 解决 使用 Taro UI 小程序下 Iconfont 图标 不显示问题
    [Taro] Taro 环境安装 (一)
    [RN] react-native FlatList 实现列表选中的最佳方式(刷新指定Item)
    [RN] React Native FlatList 选中后 状态没有立即发生改变,而在下一次生效的问题
    [RN] React Native 使用 Redux 比较详细和深刻的教程
    [Taro] taro 缓存
    个人总结第十五周
    个人总结第十四周
    个人总结第十三周
    个人总结第十二周
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/12252834.html
Copyright © 2020-2023  润新知