fragment一

一.创建Fragment1

方式一: 静态显示

1.activity布局中编写fragment标签并指定其name属性

<fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.example.myapplication.fragments.Fragment1">
</fragment>

2.创建Fragment子类

public class Fragment1 extends Fragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    //其中R.layout.fragment1_layout为fragment布局
        return inflater.inflate(R.layout.fragment1_layout,container,false);
    }
}

方式二:动态显示

1.创建占位标签(activity布局)

 <RelativeLayout
       android:id="@+id/rela_fragment"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
   </RelativeLayout>

2.创建Fragment子类并重写onCreate方法(同上)

3.使用事务添加fragment

		FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        Fragment1 fragment1 = new Fragment1();
        transaction.add(R.id.rela_fragment,fragment1);
        transaction.commit();

二.Fragment常用类

管理类 事务类
FragmentManager FragmentTransaction

三.FragmentTransaction常用方法

FragmentTransaction.add(int containerViewId, Fragment fragment, String tag)
Fragment findFragmentByTag(String tag)
FragmentTransaction add(int containerViewId, Fragment fragment)
FragmentTransaction remove(Fragment fragment)
FragmentTransaction replace(int containerViewId, Fragment fragment, String tag)
FragmentTransaction.commit()

四.Fragment生命周期

  • onAttach:当Fragment与Activity发生关联时调用
  • onCreate:创建Fragment时被回调,经历暂停或停止状态继而恢复后,想保留Fragment的基本组件,则在此进行初始化。
  • onCreateView:首次绘制页面时候调用,在此可以创建View,也可以返回null,这样不建议耗时操作。
  • onActivityCreated:Fragment绑定Activity,在onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,不能在此之前跟Activity进行交互。
  • onStart:启动 Fragment 时被回调,此时Fragment可见,只是还没有在前台显示,因此无法与用户进行交互
  • onResume:Fragment在前台可见,处于活动状态,用户可与之交互
  • onPause:Fragment处于暂停状态,但依然可见,用户不能与之交互
  • onStop:停止Fragment回调,Fragment完全不可见
  • onDestoryView:销毁与Fragment有关的视图,但未与Activity解除绑定
  • onDestory:销毁 Fragment 时被回调,通常按Back键退出或者Fragment被回收时调用此方法,此后接onDetach
  • onDetach:与onAttach相对应,当Fragment与Activity关联被取消时调用

五.Fragment与Activity交互

Fragment获得Activity中的组件: getActivity().findViewById(R.id.list);
Activity获得Fragment中的组件(根据id和tag都可以):getFragmentManager.findFragmentByid(R.id.fragment1);

六.回退栈

在这里插入图片描述

应用场景

当点返回按钮时是应该退出呢?还是返回上一个fragment?

进栈

事务.addToBackStack(null);

出栈

if(manager.getBackStackEntryCount() > 0){
manager.popBackStack();
}
else finish();

猜你喜欢

转载自blog.csdn.net/amynn/article/details/106795056
今日推荐