码迷,mamicode.com
首页 > 其他好文 > 详细

Fragment

时间:2020-02-02 17:57:22      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:布局   public   context   使用   super   span   inter   接收   turn   

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;
}

 

Fragment

标签:布局   public   context   使用   super   span   inter   接收   turn   

原文地址:https://www.cnblogs.com/XiaoGao128/p/12252834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!