在刚刚过去Android Dev Summit 2019中,提到很多项目,如依旧大力推广的Kotlin,还有Jetpack Compose,CameraX,Room等新功能。其中也提到了android fragments,发布了androidx.fragment-1.2.0-rc01。

fragment一直是开发中非常常用的工具,在以前的版本中由于生命周期的问题一直被诟病,虽然现在已经经过很多优化,依旧会出现些许问题。但google也一直在持续的优化,自从androidx推出之后,fragment独立为一个library,就是androidx.fragment。

使用androidx.fragment首先需要迁移到androidx,可以参考官方文档(https://developer.android.com/jetpack/androidx/migrate?hl=zh-cn)进行迁移。在刚刚发布的androidx.fragments库中,有一些新的功能变化。

FragmentContainerView

在以前的版本中,经常使用FrameLayout来进行加载Fragment,而FragmentContainerView就是继承自FrameLayout,它可以可靠的处理Fragment,有更好的协调功能,可以更好的管理fragment加载时的动画效果。

使用方法和FrameLayout相同

当然也可以代替fragment标签,它有两个自定义属性,name和tag,name表示会创建一个fragment,而设置了tag表示可以用findFragmentByTag来查找你的fragment,使用方法如下

但是需要注意的是不要用它来替换其他布局,如LinearLayout。

FragmentFactory

通常创建fragment时都是无参构造方法,而FragmentFactory改变了这一点,可以在新建fragment时就传入参数,不用再手动添加了

getSupportFragmentManager()    .beginTransaction()    .replace(R.id.container, MyFragment.class, new Bundle());

其次,可以自定义Factory方法,当创建fragment时,可以根据需要创建自定义的Fragment

public class MyFactory extends FragmentFactory {    @NonNull    @Override    public Fragment instantiate(@NonNull ClassLoader classLoader, @NonNull String className) {           ……    }}

androidx.fragment的新版本有这些可喜的变化,值得尝试。使用方式如下

implementation 'androidx.fragment:fragment:1.2.0-rc01'// 如果使用kotlinimplementation 'androidx.fragment:fragment-ktx:1.2.0-rc01'

 

更多相关文章

  1. 在AndroidStudio中使用GreenDAO
  2. [转]创建不可见的Activity
  3. Android开发入门——推箱子游戏开发实战(二)
  4. Android中如何给layout资源文件分类 在layout下创建子文件夹
  5. 【白话】App从启动到页面显示出来发生了什么
  6. Android(安卓)自定义 dialog
  7. android中的dialog
  8. Android(安卓)Studio如何发布APK
  9. android fw systemserver之MountService分析

随机推荐

  1. Android:BaseMultiItemQuickAdapter打造嵌
  2. android弹出dialog后activity背景变暗
  3. Android文件缓存的简单应用Acache
  4. 用eclipse开发android时两个组件总是重叠
  5. Android OKhttp 上传文件袋参数
  6. 收集的一些android open source app
  7. Android(安卓)存储路径
  8. Android界面设计
  9. android带彩色下划线的tab移动导航
  10. android sdk无法更新怎么办?如何解决