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

最新文章

  1. [deviceone开发]-openPage的动画效果示例
  2. GJM : 中断被Socket.Accept阻塞的线程
  3. Javascript 面向对象编程初探(一)--- 封装
  4. flex sdk中mx_internal function getTextField() 这种函数如何调用?
  5. matlab实现hog特征
  6. iPad开发(Universal Applications)
  7. Intent实现Activity组件之间的通信
  8. 编译流程,C开发常见文件类型名
  9. 将Xml或Json生成类的最简单方式
  10. poj 2594 Treasure Exploration(最小路径覆盖+闭包传递)
  11. cocos2dx 读取json及解析
  12. 关于autoconf
  13. ASP.NET Core介绍
  14. 章节四、1-if条件语句
  15. python基础之IO编程
  16. 基于React 的前端UI开发框架 及与Electron 的结合 https://cxjs.io/
  17. BZOJ.3938.Robot(李超线段树)
  18. 完美解决&quot;Encountered an NTFS Volume with a logfile ...&quot;
  19. python进程池爬取下载美女图片(xpath)--lowbiprogrammer
  20. ntpdate 正确的做法

热门文章

  1. volley 发送post请求
  2. mysql事务之二:MySQL隔离级别演示
  3. Kata 架构
  4. Spring Cloud与分布式系统
  5. 爬取豆瓣电影Top250信息
  6. Linux系统SCSI磁盘扫描机制解析及命令实例(转)
  7. 配置Linux接收H3C路由器日志
  8. C++中的explicit关键字 - 抑制隐式转换(转)
  9. itemize,enumerate,description 用法【LaTeX 使用】
  10. consul watch