- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Fragment创建动态UI
使用Fragment创建动态UI
在Android中创建动态、多栏的UI,你需要将UI组件和Activity行为封装到模块中,以便在Activity中交换。你可以使用Fragment类创建这些模块,这种行为有点像一个可以自己定义布局和管理生命周期的嵌套Activity。
当一个Fragment指定它自身的布局时,它能和Activity内的其它Fragment配置成不同的组合以便为不同的屏幕大小修改你的布局结构(小屏幕一次可能只显示一个Fragment,大屏幕则可以显示两个或更多)。
本课程展示了如何使用Fragment创建动态的用户体验以及为不同屏幕大小的设备优化App的用户体验,同时继续支持运行于低至Android1.6版本的设备。
创建Fragment
你可以认为Fragment是Activity的一个模块化部分,它有自己的生命周期,有自己的输入事件,并且你还可以在Activity运行时添加或移除它(有点像可以在不同的Activity中重用的“子Activity”)。这节内容展示了如何使用支持库继承Fragment,使你的App可以和运行低至Android1.6的设备保持兼容。
注意:如果你决定了App要求的最小API级别为11以上,你可以使用框架内建的Fragment类及相关的API,而不需要使用支持库。只要知道这节课的重点在于使用支持库API,它使用特定的包签名,并且某些API名称和平台包含的版本有点不同。
在你开始课程之前,你必须设置你的Android项目使用支持库。如果你之前没有使用支持库,按“安装支持库”文档所说的把你的项目设为使用v4库,你也可以使用v7 appcompat库以便在Activity中包含操作栏,v7兼容Android2.1(API级别7)并且也包含Fragment API。
创建Fragment类
要创建Fragment,从Fragment类继承,重写关键的生命周期方法以插入App的应用逻辑,就像你在Activity类做的一样。
不同的是,创建Fragment时,你必须在onCreateView()回调方法中定义布局。事实上,这是运行Fragment所需要的唯一回调方法。下例是一个指定自己布局的简单Fragment:
import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.ViewGroup;public class ArticleFragment extends Fragment {? ? @Override? ? public View onCreateView(LayoutInflater inflater, ViewGroup container,? ? ? ? Bundle savedInstanceState) {? ? ? ? // 填充fragment的布局? ? ? ? return inflater.inflate(R.layout.article_view, container, false);? ? }}
就像Activity一样,Fragment应该实现其它的生命周期回调方法,这样,当它在Activity中被添加或移除时,以及Activity本身在生命周期状态中切换时,允许你管理Fragment的状态。例如,Activity的onPause()被调用时,Activity中的所有Fragment也会收到onPause()的调用。
更多有关Fragment生命周期和回调方法的信息,请参考Fragment开发者指南。
使用XML向Activity添加Fragment
Fragment是可重用的、模块化的UI组件,每个Fragment类的实例都必须关联一个父FragmentActivity。你可以在Activityr的布局XML文件中定义每一个Fragment来获取这种关联。
注意:FragmentActivityj 是一个支持库提供的特殊的Activity,用来在低于API级别11的系统版本中处理Fragment。如果你支持的最低系统版本高于API级别11,你可以使用Activity。
这里是一个当设备屏幕为“大”(目录名使用了“large”修饰符)时,向Activity添加两个Fragment的布局文件的示例:
res/layout-large/news_articles.xml
LinearLayout xmlns:android=/apk/res/android? ? android:orientation=horizontal
您可能关注的文档
最近下载
- 多模态大模型:开放世界理解.pptx
- BS EN 12182-2012 残疾人技术辅助器具.通用要求和试验方法.pdf
- 第15课 明至清中叶的经济与文化 课件 【知识建构+备课精研】高中历史统编版(2019)必修中外历史纲要上册.pptx VIP
- 智慧交通项目整体解决方案.docx VIP
- 0i-TF PLUS车床操作说明书.pdf
- 2025四川资源集团招聘134人笔试模拟试题及答案解析.docx
- 初一英语全解析PPT模板.pptx
- 蓝牙驱动跟bluez使用流程分析解析.pdf
- 进修护士学员自我鉴定.docx
- 信息系统运行管理员(基础知识、应用技术)合卷软件资格考试(初级)试题与参考答案(2024年).docx VIP
文档评论(0)