zoukankan      html  css  js  c++  java
  • Fragment基本介绍

    1.生命周期

    onCreateView() :创建视图

    onActivityCreate():activity创建完成的时候调用

    onDestoryView():销毁视图

    onDetach():与activity解除绑定

    2.静态使用

    2.1 继承fragment(android.app.Fragment)

    2.2 直接在布局文件中使用

      

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <fragment
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/fragment1"
            android:name="example.com.fragmentdemo.OneFragment"
            />
    
    
    </RelativeLayout>

    3.动态使用

    步骤:

    1.创建fragment

    2.通过getFragmentManager()方法得到FragmentManager

    3.开启一个事务,beginTransaction()

    4.添加、移除、替换、隐藏、显示fragment,add/remove/replace/hide/show

    5.提交事务,commit();

    manager.beginTransaction().add(R.id.fl,twoFragment).commit();

    如果要实现类似于返回栈的效果,在commit()前 调用addToBackStack()方法

    manager=getFragmentManager();
    manager.beginTransaction().add(R.id.fl,twoFragment).addToBackStack(null).commit();

    replace()方法会使fragment视图销毁 执行onpause()/onStop()/onDestoryView()

    remove()方法会使fragment销毁 执行onpause()/onStop()/onDestoryView()/onDesdory()/onDecath()

    hide()/show()不会执行其他的生命周期

    锁屏  onPause()/onStop()    锁屏恢复:onStart()/onResume()

    4.携带数据

    1.在Fragment中创建newInstance方法,使Fragment携带参数

    public static OneFragment newInstance(String txt){
            OneFragment oneFragment=new OneFragment();
            Bundle bundle=new Bundle();
            bundle.putString("param",txt);
            oneFragment.setArguments(bundle);
            return oneFragment;
        }

    2.声明Fragment

    oneFragment=OneFragment.newInstance("oneFragment");

     3.在Fragment的onCreateView()中获取参数

     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
            Log.d(TAG, "onCreateView: ");
            View view=inflater.inflate(R.layout.fragment_one,container,false);
            if(getArguments()!=null){
                Bundle bundle=getArguments();
                String str= bundle.getString("param");
                Log.e("OneFragment","onCreateView(OneFragment.java:48):"+str);
            }
            return view;
        }
  • 相关阅读:
    Chrome应用商店打不开解决方法
    vue中的列表项删除操作
    markdown(语法)入门学习:
    利用插件(jQuery-ui.js)实现表格行的拖拽排序
    div拖拽互换位置(vue)
    MarkDown学习
    经典算法精讲精练之回溯法求解0-1背包问题
    读书笔记——《谁说菜鸟不会数据分析—Python篇》
    读书笔记之《统计之美:人工智能时代的科学思维》
    读书笔记之《漫画算法:小灰的算法之旅》
  • 原文地址:https://www.cnblogs.com/wangjiaghe/p/7640770.html
Copyright © 2011-2022 走看看