没有合适的资源?快使用搜索试试~ 我知道了~
首页AndroidX下使用Activity和Fragment的变化详解
资源详情
资源评论
资源推荐
AndroidX下使用下使用Activity和和Fragment的变化详解的变化详解
主要介绍了AndroidX下使用Activity和Fragment的变化详解,文中通过示例代码介绍的非常详细,对大家的学习
或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
过去的一段时间,AndroidX 软件包下的 Activity/Fragmet 的 API 发生了很多变化。让我们看看它们是如何提升Android 的开发
效率以及如何适应当下流行的编程规则和模式。
本文中描述的所有功能现在都可以在稳定的 AndroidX 软件包中使用,它们在去年均已发布或移至稳定版本。
在构造器中传入布局在构造器中传入布局 ID
从 AndroidX AppCompat 1.1.0 和 Fragment 1.1.0 ( 译者注:AppCompat 包含 Fragment,且 Fragment 包含 Activity,详情
见【整理】Jetpack 主要组件的依赖及传递关系 )开始,您可以使用将 layoutId 作为参数的构造函数:
class MyActivity : AppCompatActivity(R.layout.my_activity)
class MyFragmentActivity: FragmentActivity(R.layout.my_fragment_activity)
class MyFragment : Fragment(R.layout.my_fragment)
这种方法可以减少 Activity/Fragment 中方法重写的数量,并使类更具可读性。无需在Activity 中重写 onCreate() 即可调用
setContentView() 方法。另外,无需手动在Fragment中重写 onCreateView 即可手动调用 Inflater 来扩展视图。
扩展扩展 Activity/Fragment 的灵活性的灵活性
借助 AndroidX 新的 API ,可以减少在 Activity/Fragment 处理某些功能的情况。通常,您可以获取提供某些功能的对象并向其
注册您的处理逻辑,而不是重写 Activity / Fragment 中的方法。这样,您现在可以在屏幕上组成几个独立的类,获得更高的灵
活性,复用代码,并且通常在不引入自己的抽象的情况下,对代码结构具有更多控制。让我们看看这在两个示例中如何工作。
OnBackPressedDispatcher
有时,您需要阻止用户返回上一级。在这种情况下,您需要在 Activity 中重写 onBackPressed()方法。但是,当您使用
Fragment 时,没有直接的方法来拦截返回。在 Fragment 类中没有可用的onBackPressed() 方法,这是为了防止同时存在多
个 Fragment 时发生意外行为。
但是,从 AndroidX Activity 1.0.0 开始,您可以使用 OnBackPressedDispatcher 在您可以访问该 Activity 的代码的任何位置
(例如,在 Fragment 中)注册 OnBackPressedCallback。
class MyFragment : Fragment() {
override fun onAttach(context: Context) {
super.onAttach(context)
val callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
// Do something
}
}
requireActivity().onBackPressedDispatcher.addCallback(this, callback)
}
}
您可能会在这里注意到另外两个有用的功能:
OnBackPressedCallback 的构造函数中的布尔类型的参数有助于根据当前状态动态 打开/关闭按下的行为
addCallback() 方法的可选第一个参数是 LifecycleOwner,以确保仅在您的生命周期感知对象(例如,Fragment)至少处于
STARTED 状态时才使用回调。
通过使用 OnBackPressedDispatcher ,您不仅可以获得在 Activity 之外处理返回键的便捷方式。根据您的需要,您可以在任
意位置定义 OnBackPressedCallback,使其可复用,或根据应用程序的架构进行任何操作。您不再需要重写Activity 中的
onBackPressed 方法,也不必提供自己的抽象的来实现需求的代码。
SavedStateRegistry
如果您希望 Activity 在终止并重启后恢复之前的状态,则可能要使用 saved state 功能。过去,您需要在 Activity 中重写两个方
法:onSaveInstanceState 和onRestoreInstanceState。您还可以在 onCreate 方法中访问恢复的状态。同样,在 Fragment
中,您可以使用onSaveInstanceState 方法(并且可以在 onCreate,onCreateView 和onActivityCreated方法中恢复状态)。
从 AndroidX SavedState 1.0.0(它是 AndroidX Activity 和 AndroidX Fragment 内部的依赖。译者注:您不需要单独声明
它)开始,您可以访问 SavedStateRegistry,它使用了与前面描述的 OnBackPressedDispatcher 类似的机制:您可以从
Activity / Fragment 中获取SavedStateRegistry,然后 注册您的 SavedStateProvider:
class MyActivity : AppCompatActivity() {
companion object {
weixin_38667207
- 粉丝: 3
- 资源: 965
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0