常用控件(七) : Fragment 的简单使用


Fragment 简单使用

 在activity 的布局文件中添加fragment

 <FrameLayout
        android:id="@+id/fl_main_content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">


        <fragment
            android:id="@+id/nologin_left_fragment"
            android:name="com.hanya.financing.main.home.HomeNoLoginFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <fragment
            android:id="@+id/nologin_right_fragment"
            android:name="com.hanya.financing.main.active.ActivityCenterFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </FrameLayout>


   在activity 中 初始化fragment
  fragmentManager = getSupportFragmentManager();

        //实例化三个页面 已经不用添加  ,已经在布局文件中添加
        homeNoLoginFragment = (HomeNoLoginFragment) fragmentManager.findFragmentById(R.id.nologin_left_fragment);
        gameFrament = (ActivityCenterFragment) fragmentManager.findFragmentById(R.id.nologin_right_fragment);

        fragmentTransaction = fragmentManager.beginTransaction();
        //设置首页显示
        fragmentTransaction.show(homeNoLoginFragment).hide(gameFrament).commit();




Fragment 生命周期


onAttach //当创建出一个fragment的时候要附加到activity上
oncreate //fragment被创建
oncreateview //fragment要显示的view给返回回来。

onActivityCreated、//activity创建完后才可以加到activity上

onstart //用户可见
onresume //获取焦点
onpause //失去焦点
onstop //用户不可见
ondestoryView //销毁view
ondestoty //fragment销毁
onDetach //取消挂载的fragment

一般情况下用
oncreateview
ondestoryview

--------------------------------------------------

当前fragment对 用户可见时 可以执行一些逻辑。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
}


Fragment 之间切换时


@Override
   public void setUserVisibleHint(boolean isVisibleToUser) {
       super.setUserVisibleHint(isVisibleToUser);
       if (isVisibleToUser) {
           //相当于Fragment的onResume
       } else {
           //相当于Fragment的onPause
       }
   }


// 当切换fragment时候,会走这个生命周期方法
  @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (!hidden) {
            if (currentNologinEntity == null) {
                refresh(false);
            }

        }

    }


fragment 之间通信?


getActivity(); //先后去fragment挂载的activity
FragmentManager fm = getActivity().getFragmentManager()     //通过activity 获得fragment管理器。 
 Fragment f = fm.findFragmentById(); //获取到目标fragment
 f.update() //通过fragment 对象更新方法(根据业务自定义)即可

动态创建fragment 

MYFragment  f = new MyFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace
ft.hide //show
commit




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值