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;
        }
  • 相关阅读:
    Guns项目整体结构
    基于事件的NIO多线程服务器
    Reactor模式和NIO
    ConcurrentHashMap之实现细节
    C 语言的前世今生
    Netty系列之Netty高性能之道
    java synchronized详解
    生产者/消费者模式
    当spring 容器初始化完成后执行某个方法
    Linux系统管理员需要知道的16个服务器监控命令
  • 原文地址:https://www.cnblogs.com/wangjiaghe/p/7640770.html
Copyright © 2011-2022 走看看