探究碎片(三)

1.Fragment : 碎片
2.FrameLayout : 碎片布局布局


在使用动态添加碎片时,须要配合碎片布局来完成,主要分为 5 步:
 1.  建立待添加的碎片实例。 MyFrame  my = new MyFrame();
 2.  获取到 FragmentManager,在活动中能够直接调用 getFragmentManager()方法获得。
 3.  开启一个事务,经过调用 beginTransaction()方法开启。
 4.  向容器内加入碎片,通常使用 replace()方法实现,须要传入容器的 id和待添加的碎
     片实例。
 5.  提交事务,调用 commit()方法来完成orm

在碎片中模拟返回栈:
 FragmentTransaction 中提供了一个 addToBackStack()方法,能够用于将一
 个事务添加到返回栈中.生命周期

碎片和活动之间进行通讯:
 1.活动中调用碎片:
  RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
 2.碎片中调用活动:
  MainActivity activity = (MainActivity) getActivity();
 3.碎片和碎片通讯:
  首先在一个碎片中能够获得与它相关联的活动,而后再经过这个活动去获取另一个碎片的实例,
  这样也就实现了不一样碎片之间的通讯功能。事务

     碎片的生命周期
1.  运行状态
 当一个碎片是可见的,而且它所关联的活动正处于运行状态时,该碎片也处于运行状态。
2.暂停状态
 当一个活动进入暂停状态时(因为另外一个未占满屏幕的活动被添加到了栈顶) ,与它相关联的可见碎片就会进入到暂停状态
3.中止状态
 当一个活动进入中止状态时,与它相关联的碎片就会进入到中止状态。
 或者经过调用 FragmentTransaction 的 remove()、replace()方法将碎片从活动中移除,
 但有在事务提交以前调用 addToBackStack()方法,这时的碎片也会进入到中止状态。总的来讲,
 进入中止状态的碎片对用户来讲是彻底不可见的,有可能会被系统回收。
4.销毁状态
 碎片老是依附于活动而存在的,所以当活动被销毁时,与它相关联的碎片就会进入到销毁状态。
 或者经过调用 FragmentTransaction 的 remove()、replace()方法将碎片从活动中移除,
 但在事务提交以前并无调用 addToBackStack()方法,这时的碎片也会进入到销毁状态。资源

碎片还提供了一些附加的回调方法:
 1.  onAttach()
  当碎片和活动创建关联的时候调用。
 2.  onCreateView()
  为碎片建立视图(加载布局)时调用。
 3.  onActivityCreated()
  确保与碎片相关联的活动必定已经建立完毕的时候调用。
 4.  onDestroyView()
  当与碎片关联的视图被移除的时候调用。
 5.  onDetach()
  当碎片和活动解除关联的时候调用。rem

     动态加载布局的技巧
1.限定符使用: 和系统提供drawable文件夹同一个特色
 屏幕特征  限定符  描述
    small    提供给小屏幕设备的资源
 大小   normal   提供给中等屏幕设备的资源
    large    提供给大屏幕设备的资源
    xlarge   提供给超大屏幕设备的资源
  
    ldpi     提供给低分辨率设备的资源(120dpi如下)
 分辨率   mdpi     提供给中等分辨率设备的资源(120dpi到 160dpi)
    hdpi     提供给高分辨率设备的资源(160dpi到 240dpi)
    xhdpi    提供给超高分辨率设备的资源(240dpi到 320dpi)get

 方向   land     提供给横屏设备的资源
    port     提供给竖屏设备的资源it

2.使用最小宽度限定符:sw (Smallest-width Qualifier)  最小宽度限定符是在 Android 3.2 版本引入的
 好比:在 res 目录下新建 layout-sw600dp 文件夹, 表明600dp以上的设备会加载该文件夹下的文件io

 

相关文章
相关标签/搜索