[Android]Fragment、Activity比较——Android碎片介绍
Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法。Fragment用来描述一些行为或一部分用户界面在一个Activity中,你可以合并多个fragment在一个单独的activity中建立多个UI面板,同时重用fragment在多个activity中.你可以认为fragment作为一个activity中的一节模块 ,fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity.
一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity而影响,举个例子吧,当activity 暂停,那么所有在这个activity的fragments将被destroy释放。然而当一个activity在运行比如resume时,你可以单独的操控每个fragment,比如添加或删除。
Fragment作为Android 3.0的新特性,有些功能还是比较强大的,比如 合并两个Activity,如图
![Fragment、Activity比较Android碎片介绍 - 乂乂 - 一个人,一支烟 ·~~](http://img853.ph.126.net/eUIuYIi8zxemW97X40HcRw==/616711673974592008.png)
我们可以看到两个Activity通过两个Fragment合并到一个Activity的布局方式,对于平板等大屏幕设备来说有着不错的展示面板。不过因为Fragment和Activity的生命周期都比较复杂,我们分别对比下:
![Fragment、Activity比较Android碎片介绍 - 乂乂 - 一个人,一支烟 ·~~](http://img692.ph.126.net/qlUL2HaezEGWqFcYj7Ny-A==/1167839678373726341.png)
创建一个fragment你必须创建一个Fragment的子类或存在的子类,比如类似下面的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.android_fragment, container, false);
}
Fragment类的一些代码看起来有些像Activity为了让大家了解清楚,Android开发网给大家整理下Fragment的生命周期如上图所示,部分类似Activity的,我们详细解释
onCreate()
当fragment创建时被调用,你应该初始化一些实用的组件,比如在fragment暂停或停止时需要恢复的
onCreateView()
当系统调用fragment在首次绘制用户界面时,如果画一个UI在你的fragment你必须返回一个View当然了你可以返回null代表这个fragment没有UI.
那么如何添加一个Fragment到Activity中呢? Activity的布局可以这样写
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
fragment android:name="com.android.cwj.ArticleListFragment"
android:id="@+id/list"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" /
fragment android:name="com.android.cwj.ArticleReaderFragment"
android:id="@+id/viewer"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" /
/LinearLayout
最后提醒大家Fragment存在于Activity的ViewGroup中,按照继承关系大家就可以了解他的结构。
Android Fragment懒加载新思路 在Android x以前,我们实现懒加载通常是通过 setUserVisibleHint 方法来控制Fragment是否可见。在Android x之后,Google 提供了新的方案给我们。今天我们就来学习一下。
【Android】4.0Fragment的使用 Fragment 表示应用界面中可重复使用的一部分。Fragment 定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。Fragment 不能独立存在,而是必须由 Activity 或另一个 Fragment 托管。Fragment 的视图层次结构会成为宿主的视图层次结构的一部分,或附加到宿主的视图层次结构。
简单讲解Android Fragment(四) 关于Fragment与Activity之间、或Fragment 与Frament之间数据的交互其实方法有很多,在开发中其实也经常需要实现交互,比如一个Activity中添加了多个Frament,这些Fragment彼此之间存在数据交互,这种情况也是很常见的,下面列出了一些方法,其实还有很多,仅供参考。
简单讲解Android Fragment(三) 这篇文章来讲 Frament的管理,管理Fragment,需要用到FragmentManager,通过FragmentManager开始一个契约FragmentTransaction,通过制定契约来实现add()、hide()、replace()、show()、remove()
相关文章
- 聚焦 Android 11: 大功告成
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
- android中的加密算法,Android中加密算法[通俗易懂]
- android 混淆规则作用,Android代码混淆详解
- android 安装p12证书,如何在Android中使用p12证书(客户端证书)
- android sdk manager安装,Android SDK Manager安装过程
- android declare-styleable 和style,Android 关于declare-styleable属性的写法….
- android activitymanager 系统api_Android view
- Android Looper,Handler,Message,MessageQueue介绍
- Android - NETD解读
- 【Android 电量优化】电量优化 ( JobScheduler | JobService | AsyncTask )
- 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )
- 【错误记录】Android 应用中启动 FlutterActivity 报错 ( have you declared this activity in your AndroidManifest )
- 【错误记录】Android Studio 编译时 lint 检查报错 ( WARNING: DSL element ‘android.dataBinding.enabled‘ is obsolet )
- 【错误记录】Android 编译报错 ( Installed Build Tools revision 31.0.0 is corrupted. Remove and install again )
- android判断服务是否是运行状态详解编程语言
- Android 12 Beta 4带来了更快的搜索体验
- Android控件系列之CheckBox使用介绍
- Android数据类型之间相互转换系统介绍
- android自定义控件自定义属性详细介绍
- Android系统自带样式(android:theme)
- Android消息通知栏的实现方法介绍
- android真机调试时无法显示logcat信息的解决方法介绍
- Android点击Button实现功能的几种方法总结
- Android开发学习之WallPaper设置壁纸详细介绍与实例
- android自定义控件和自定义回调函数步骤示例
- android开发教程之获取使用当前api的应用程序名称
- android开发中使用java观察者模式
- Android中引用其他程序的文本资源超简单方法