• 我的订阅
  • 科技

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

类别:科技 发布时间:2022-12-23 10:00:00 来源:书圈

讲解目前更流行的界面控件Fragment的编程方法,利用它可以实现灵活、动态的界面设计。该节从Fragment的生命周期的讲解入手,通过两个案例介绍了如何实现Fragment的静态加载和动态加载,尤其是动态加载(例4-12),实现了多页面、多区域间的界面互动,给用户带来了更丰富的操作体验。

【例4-12】使用Fragment实现分页显示功能。程序运行效果如图4.18所示,包含“列表”页和“列表项内容”页,并通过下方的TAB栏上的“列表”“列表项内容”按钮进行切换。在如图4.18(a)所示“列表”页中选择ListView控件中某个子项后,在如图4.18(b)所示“列表项内容”页面显示该子项的内容。

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

■ 图4.18分页导航程序运行效果

项目FragmentTabDemo实现了上述效果。该项目的文件结构与图4.17一样,拥有相同的java文件和布局文件的名称。其中,两个Fragment的布局文件内容与例4-11完全一样,下面是剩下的几个文件。

首先是MainActivity的布局文件activity_main.xml,代码如下。

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

整个布局由两部分构成,一部分是id为content的框架布局(FrameLayout)用于装载ContentFragment或者ListViewFragment视图,目前里面没有添加任何具体内容,具体内容将在MainActivity.java中动态添加;另一部分是用于TAB栏的水平线性布局(LinearLayout),这两部分间的水平空隙由高度为0.5dp的View控件填充。

TAB栏的水平布局分为两份,即按钮区域。左边的按钮区域是“列表”,id是listview_layout,右边按钮区域是“列表项内容”,id是content_layout。每份是一个RelativeLayout的相对布局,通过设置每个相对布局的layout_weight属性为1,使TAB栏的这两份区域宽度相等。每个按钮区域是一个内嵌ImageView和TextView控件的垂直线性布局,ImageView控件用于显示按钮的图标,而TextView控件用于显示按钮的文字。另外,两个按钮区域的垂直空隙也使用一个宽度为0.5dp的View控件填充。

现在来看一下.java文件。首先是ListViewFragment.java,主要代码如下。

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

与前面的静态加载Fragment不同,在ListViewFragment类中增加ListView的控件变量listview,String类型的成员变量mItemContent,用于保存选择的ListView子项内容。这里将mItemContent变量的访问属性设置为public,以便在MainActivity类中对该变量进行访问。在onCreateView函数中通过findViewById获得fragment_list_view.xml中的listView1控件并将之与listview变量绑定,通过setOnItemClickListener方法设置listview的监听器,当ListView中的子项被选中后,该子项的内容被保存到mItemContent变量中。

然后是ContentFragment.java,代码如下。

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

在ContentFragment类中也增加了EditText控件变量,并在onCreateView方法中将之和fragment_content.xml中的editTextTextMultiLine控件关联。ContentFragment类使用两种方法将所属Activity中的数据(字符串)显示到EditText控件上。一种是提供了公有访问的setContents方法,该方法在ContentFragment对象初始化完成后通过对象直接调用;另一种是在onCreateView方法中通过Bundle方式接收所属Activity传过来的数据,用于ContentFragment对象创建后初次显示时使用。

最后是MainActivity.java文件。该文件中定义了类型为ContentFragment的成员变量contentFragment,类型为ListViewFragment的成员变量listviewFragment,与Tab栏中“列表”布局相对应的View成员变量listviewLayout,以及与“列表项内容”布局对应的View成员变量contentLayout。

为了使Tab中的按钮区域能响应用户的单击,令MainActiviy实现View.OnClickListener接口,获得监听器,然后将这个监听器通过上述View成员变量的setOnClickListener(this)方法分别绑定到两个Tab按钮区域上,最后在重写的onClick方法中判断用户是单击了哪个区域。为了实现按钮区域切换的视觉效果,通过控件成员变量的setBackgroundColor方法将选中的区域的背景色置为蓝色(0xff0000ff),没选中的置为白色(0xffffffff)。

程序在setTabSelection方法中实现动态加载Fragment。因为用户使用过程中会来回切换页面,所以每当用户切换时要判断相应的Fragment是否已加载,如果没有则创建相应的Fragment对象并加载,否则只需让选中的页面对应的Fragment显示,其他页面对应的Fragment隐藏。

为了实现数据从ListViewFragment页面传递到ContentFragment页面,MainActivity通过listviewFragment.mItemContent获取用户单击的ListView子项内容,当ContentFragment页面存在时通过contentFragment.setContents方法将它传递给ContentFragment页面,如果ContentFragment页面不存在,则通过Bundle将数据传递给contentFragment对象,这样当ContentFragment页面初次显示时能得到这些数据。具体代码如下。

多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)
多个用户界面的程序设计案例 | Fragment控件编程(附限免视频)

扫码观看讲解视频,限免三天

01

参考书籍

《Android Studio移动网络程序设计案例教程(第2版 微课视频版)》

作者:傅由甲 杨承玉

定价: 79元

扫码优惠购书

编辑推荐

(1)内容涵盖Android移动网络程序开发的理论、实验、课程设计三部分。

(2)改变程序设计类课程中的单纯知识讲解及简单例子模拟的教学方式,通过引进工程案例,采用项目引导与驱动的方法,使学生在掌握移动网络编程技能的同时,获得更好的工程实践体验。

(3)在Android开发的基础知识上增加了目前常用的Fragment、移动网络及百度地图开发技术。

(4)针对Android 6.0以上平台对Android应用程序的要求完善案例源码,使之能适应目前主流的Android移动设备。

(5)配套丰富的教学资源:微课视频、程序代码、教学课件、教学大纲、习题答案等。 返回搜狐,查看更多

责任编辑:

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2022-12-23 11:45:03

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

Android用户界面程序设计案例 | 约束布局(附限免视频)
手把手地介绍约束布局设计中的控件定位。约束布局(ConstrainLayout)是Android Studio 2.2中新增的功能之一
2022-12-20 09:02:00
苹果iPhone相机应用专利曝光:优化操作逻辑,改善用户界面
...一项编号为 US11706521B2 的技术专利。该专利旨在通过优化用户界面,简化用户操作,降低使用门槛,提高易用性,改善拍摄体验。在该专利的描述中,苹果认为现有电子设备在拍
2023-08-01 22:12:00
组件库 | UI设计师必会的组件系统!
.... 什么是组件库组件库是将界面中具有通用性的元素组件/控件进行归纳整理,形成统一规范的组件集合,以此达到快速复用、批量修改的目的。组件库是一个强大的工具库,方便设计师随时调用
2023-02-23 13:00:00
苹果重新设计ipados18系统标签栏体验
...态下,标签栏现在位于这些应用的顶部,更靠近其他导航控件,而在横向模式下则会出现一个可定制的侧边栏。苹果表示,将标签栏放在应用程序的顶部和其他导航控件之间,可以减少界面占用的横
2024-06-15 03:59:00
智能对话时代来临:GUI正在向CUI演变
...变,又或者是影响到了具体的功能形态,比如传统的图形用户界面GUI,就可能会向对话式用户界面CUI过渡。那么,如何理解这一变化?这一过渡和演变,又会对产品的信息架构设计带来怎样
2023-04-19 18:00:00
ui自动化测试技术发展历程
...。UI自动化测试(UserInterfaceAutomationTesting)是对被测软件用户界面(UI)进行自动执行测试的一种方法
2024-04-04 02:40:00
iOS 18 Beta 4发布:新功能详解与变化探索
...更快速地访问到他们经常使用的相机工具。此外,手电筒用户界面也进行了更新。这个新界面以前是iPhone14Pro和iPhone15Pro的专属功能
2024-07-28 15:07:00
苹果AI智能家居新品曝光:一款挂墙上,一款长手臂
...和约会。或者,他们可以配置屏幕以突出显示关键的Home控件。还将有一个用于快速启动喜爱的应用程序的Dock和一个类似iPhone的软件图标主屏幕网格。据彭博社报道,在开发过程
2024-11-14 09:46:00
苹果公司ios17更新新功能
...重新设计。音乐播放器将展示全屏动画艺术品,与下方的控件完美融合。该应用还将显示每首歌曲的歌曲荣誉,包括乐器演奏者、音乐创作人、制作人和工程人员。苹果支付苹果公司继续向银行业进
2023-10-03 21:46:00
更多关于科技的资讯:
河北新闻网讯(田坤)近日,在开滦集团钱家营矿业公司(简称“开滦钱矿公司”)机采科检修车间,一台自主研发的“液压钻车负载敏感阀试验台装置”成功完成首次测试
2026-01-19 20:03:00
河北新闻网讯(闫丽颖、罗俊明)近日,开滦股份范各庄矿顺利完成井下排水泵房的智能化改造,传统人工巡检模式被远程集中监控替代
2026-01-19 20:04:00
安克与飞书联合发布“安克AI录音豆” 录音可在飞书中被AI调用
2026年1月19日,安克创新与飞书联合发布了最新AI硬件——安克AI录音豆,飞书提供了该产品的软件AI适配与服务。这款产品以极轻的"磁吸纽扣”形态实现无感随身佩戴
2026-01-19 17:13:00
+14!省级专精特新梯队扩容
江南时报讯 近日,江苏省工信厅公示了2025年度省级专精特新中小企业(第二批)认定和通过复核企业名单,苏州市相城区黄桥街道共有14家企业上榜
2026-01-19 17:25:00
2026年潍坊市家电国补启动,享国补到三联家电
鲁网1月19日讯2026年潍坊市家电及数码产品补贴正式上线,标志着新一轮“国补”政策在潍坊全面落地。1月16日,三联家电41周年店庆活动盛大启幕
2026-01-19 17:28:00
近日青岛大学龙云泽团队研发的自供能眼球追踪系统火了,仅凭眨眼摩擦就能发电,还能99%精准捕捉眼球运动,像普通眼镜一样轻便
2026-01-19 18:06:00
简橙钱米第三届“岁月珍藏,财智生花”线下品牌活动圆满结束
2026年1月11日,广州番禺太平木棉之家,以“岁月珍藏,财智生花”为主题的第三届简橙「理」想人生线下品牌活动温馨落幕
2026-01-19 17:32:00
为夯实业务转型升级根基,切实提升普惠金融服务质效,近日,滦州农商银行举办信贷新模式及信贷产品专题培训会。该行信贷相关条线骨干
2026-01-19 17:02:00
1月18日,由城市头条有限公司主办的融媒体平台“城市头条”宣布其官方移动应用“城市头条APP”已正式在官网及各主要应用商店上线
2026-01-19 16:55:00
肥乡联社始终践行“以客户为中心”的服务理念,聚焦网点服务提质增效,不断创新服务模式、精进服务技能、丰富厅堂服务内涵,将服务触角深度延伸至城乡末梢
2026-01-19 14:55:00
1月18日,2026华杰新品盛典暨AIX大家居智能增长引擎发布会在石家庄举办。本次活动以“格物·开悟”为内核,聚焦面向核心伙伴的 "能力交付",共同探索家居行业的智造升级与增长新
2026-01-19 15:35:00
近日,中国人寿保险股份有限公司(以下简称“中国人寿”,股票代码:601628.SH,2628.HK)凭借在保险主业、社会责任
2026-01-19 15:50:00
当黄仁勋在 CES 展台上宣告物理 AI 的 “ChatGPT 时刻” 已至,屏幕这头的大学生群体瞬间分裂成两派:有人对着能精准缝合的手术机器人畅想未来
2026-01-19 15:59:00
2026年深圳网上年货节启动
中国消费者报深圳讯(记者黄劼)1月16日,2026年深圳网上年货节启动仪式在深圳市南山区京东Mall南山店成功举行。年货节以“暖冬嘉年华 年货合家欢”为主题
2026-01-19 14:17:00
鲁网1月19日讯近日,国家水利部正式发布《节水先进成熟适用技术设备名录(2025年)》。在此次国家级节水技术评选中,泰安市科技创新成果“双星闪耀”——东平力创科技有限公司与泰安市智慧能源科技有限公司的领先技术成功入选
2026-01-19 11:06:00