ad

通过《基于Kotlin的Android应用程序开发》_与成功更近一步_7.1 第 7 章 碎片技术

admin 89 2023-10-25

【摘要】 本书摘自《基于Kotlin的android应用程序开发》一书中第7章,第1节,由薛岗编著。

第 7 章 碎片技术

Android 平台能在不同的硬件环境中工作,所以,应用程序应具备多运行环境的适应能力。 碎片技术 (Fragments) 是一种能基于显示条件自动配置,并实现界面的技术。该技术的引入,在 一定程度上提高了程序模块的重用率。单个碎片 (Fragment) 实质上是一个可设置多个交互组件 的“面板”,碎片实例能被系统安排到不同的窗体中运行。图7.1展示了一个基于碎片技术实现的 应用场景。在图7.1(a) 中,当显示条件有限时,碎片1和碎片2可被设置到不同的窗体中运行; 同时,如图7.1 (b) 所示,如果条件允许,碎片1和碎片2也可被设置到一个窗体中运行。

上述场景可能表现为:①对于一个应用程序而言,当它在移动电话中运行时,可使用不同的 窗体显示不同的碎片;而当它在平板电脑中运行时,可使用一个窗体同时显示两个碎片。②对于 一个应用程序,当显示环境处于竖屏状态时,可使用不同的窗体显示不同的碎片;而当显示环境 处于横屏状态时,可使用一个窗体同时显示两个碎片。

本章将主要介绍碎片的构建与加载、碎片组件与其他组件的交互、基于碎片构建灵活显示界 面的应用程序等内容。相关内容将围绕一个名为Devices(版本4)的应用展开。

如图7.2所示, Devices(版本4)运行时,会根据屏幕状态的不同而显示不同的界面。具体 而言,当屏幕为“竖屏”状态时,程序会使用两个窗体分别显示两个碎片,其中,碎片1使用列 表显示设备名称,碎片2显示设备的详细信息;当屏幕为“横屏”状态时,程序会使用一个窗体 同时显示两个碎片(碎片1和碎片2)。

Devices(版本4)将按以下顺序来构建:①创建碎片1和碎片2;②在一个窗体中加载碎片1 和碎片2;③使用两个窗体分别加载碎片1和碎片2;④根据显示条件动态加载碎片。基于上述介 绍,本章组织为3个部分,分别为:①碎片的创建与加载;②实现界面中的交互功能;③根据显 示条件显示不同的界面。7.1 碎片的创建与加载

通过《基于Kotlin的Android应用程序开发》_与成功更近一步_7.1 第 7 章 碎片技术

7.1.1 创建碎片

碎片实现的基础类是Fragment。 碎片组件的实现与窗体类似,可使用布局文件声明并配置交 互组件,而组件的行为或功能则在碎片类中实现。碎片的实例必须在Activity对象中运行,因此, 程序实现中,需要为碎片指定具体的窗体组件。

在Android Studio中新建一个项目(指定应用程序可运行的最低 Android 平台版本为API17), 名称为 Devices (版本4)。在初始状态下,项目中包含一个 MainActivity类,对应的布局文件为 activity main.xml。在Devices(版本4)中,需要定义两个碎片,分别为 ItemFragment 和 InfoFragment; 其中,ItemFragment用于显示设备的名称列表,而 InfoFragment用于显示设备的详细信息。Devices ( 版 本 4 ) 中 的 InfoFragment 在构建时需要使用一个布局定义,具体的文件为 fragment info.xml; 然而, ItemFragment可不基于布局声明来实现。在图7.3中,程序运行会使用 一个名为Device类的数据类,该类的定义与第6章(6.1节)中所介绍的Device类相同;另外, Devices(版本4)会使用到一些图片文件,这些文件也可直接沿用Devices(版本3)中的图片资 源(文件)。

在 Android Studio中新建“碎片” (Fragment) 的步骤为:在系统菜单“File”中选择"New" (新建)项,然后在Fragment项中选择“Fragment(Blank)”。开发环境进入新建碎片向导,填写碎 片类的名称和布局文件名; 一般情况下需要取消“Include fragment factory methods?" 和 “Include interface callbacks?" 两个选项;单击“结束”(finish)按钮,开发环境会自动构建一个空白的碎 片,所对应的布局声明为:

1

xmlns:tools="http://schemas.android.com/tools"

3 android:layout width="MATCH parent"

android:layout height="match parent"

tools:context="com.myappdemos.devices.BlankFragment">

8

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:通过《基于Kotlin的Android应用程序开发》_与成功更近一步_1.4.1 泛型
下一篇:通过《基于Kotlin的Android应用程序开发》_与成功更近一步_2.1 Android 平台与开发环境
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×