课程表

Android Studio

Android SDK

工具箱
速查手册

安卓 片段

当前位置:免费教程 » 移动开发 » Android
Fragment 即片段是一种activity,可实现更多的模块化活动设计。如果我们说,片段是子activity,也是正确的。

以下是关于片段要点:

  • 一个片段有自己的布局和自己的行为以及它自己的生命周期回调.

  • 您可以在活动运行时添加或删除活动中的片段.

  • 您可以在一个活动中组合多个片段来构建多窗格UI.

  • 片段可用于多个活动.

  • 片段生命周期与其宿主活动的生命周期密切相关,这意味着当活动暂停时,活动中可用的所有片段也将被停止.

  • 片段可以实现没有用户界面组件的行为.

  • 片段已添加到Android版的Honeycomb版本的Android API中,其中API版本为11 .

你可以通过扩展 Fragment 类来创建片段,您可以通过在活动的布局文件中声明片段作为< fragment> 元素,将片段插入到您的活动布局中。

在片段介绍之前,我们有一个限制因为我们只能在一个给定的时间点在屏幕上显示一个活动.因此我们无法分割设备屏幕并分别控制不同的部件.但随着片段的引入,我们获得了更大的灵活性,并消除了一次在屏幕上进行单个活动的限制.现在我们可以有一个活动,但每个活动可以包含多个片段,这些片段将拥有自己的布局,事件和完整的生命周期。

以下是两个UI模块,示例片段如何在平板电脑上变成一个界面,在手机上则变成2个界面:

1.jpg

当在平板电脑大小的设备上运行时,应用程序可以在活动A中嵌入两个片段.但是,在手机大小的屏幕上,两个片段都没有足够的空间,因此活动A仅包含文章列表的片段,当用户选择文章时,它启动活动B,其中包括要读取的第二个片段文章.

片段生命周期

Android片段的生命周期与Android activity非常相似,本节简要介绍其生命周期的不同阶段。

2.jpg

片段生命周期

以下是您可以在片段类中重写的方法列表 :

  • onAttach()片段实例与活动实例相关联.片段和活动未完全初始化.通常,您会在此方法中获得对使用该片段进行进一步初始化工作的活动的引用.

  • onCreate()系统在创建片段时调用此方法.您应该在片段暂停或停止时初始化要保留的片段的基本组件,然后重新开始.

  • onCreateView()当片段第一次绘制其用户界面时,系统会调用此回调.要为您的片段绘制UI,您必须从此方法返回 View 组件,该组件是片段布局的根.如果片段没有提供UI,则可以返回null.

  • onActivityCreated()在onCreateView之后调用onActivityCreated()创建主机活动时的()方法.已创建活动和片段实例以及活动的视图层次结构.此时,可以使用findViewById()方法访问视图.例.在此方法中,您可以实例化需要Context对象的对象

  • onStart()一旦片段调用onStart()方法可见.

  • onResume()片段变为活动状态.

  • onPause()系统将此方法称为用户离开片段的第一个指示.这通常是您应该提交应该在当前用户会话之外保留的任何更改.

  • onStop()片段转到通过调用onStop来停止()

  • onDestroyView()片段视图将在调用此方法后销毁

  • onDestroy() onDestroy()调用以最终清除片段的状态,但不保证由Android平台调用.


如何使用片段?

这涉及创建片段的一些简单步骤.

  • 首先确定要在活动中使用多少个片段.例如,让我们想要使用两个片段来处理设备的横向和纵向模式.

  • 接下来根据片段的数量,创建将扩展 Fragment 类. Fragment类具有上述回调函数.您可以根据您的要求覆盖任何功能.

  • 对应每个片段,您需要在XML文件中创建布局文件.这些文件将具有已定义片段的布局.

  • 最后修改活动文件以定义根据您的要求替换片段的实际逻辑.

片段类型

基本上片段分为三个阶段,如下所示.

  • 单帧片段 : 单帧片段用于移动设备等手持设备,此处我们只能将一个片段显示为视图.

  • 列表片段 : 具有特殊列表视图的片段称为列表片段

  • 片段事务 : 使用片段事务.我们可以将一个片段移动到另一个片段.

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号