Fragment应该知道的一切(2)

TableLayout+ViewPager2+Fragment的实现 如何实现TableLayout+ViewPager2+Fragment呢? 1、首先我们先要在build.gradle中添加这两个外部引用 //TableLayout implementation "com.google.android.material:material:1.1.0" //ViewPager2 implementation 'androidx.viewpager2:viewpager2:1.0.0' 2、创建CheckFragment类,设置布局Fragment布局页面,需要注意的是如何 阅读详情

功能需求:如何使用自适应活动布局定义来创建应用程序,以便根据设备外形因素的差异自动重新排列其用户界面。 

解决方案:借助自适应活动布局定义,应用程序只需使用几个设计合理的片段即可支持多种设备,解决设备布局中特定差异。

能力要求:能够实现一个用户界面,该界面使用片段自动适应设备布局的差异,并在涉及的片段中协调用户操作。

    在用户界面设计中使用,Fragment为创建更容易适应设备差异的应用程序提供了良好的基础,但必须进一步创建真正灵活的用户界面,以便构成UI的Fragment可以轻松地重新排列,以响应应用程序当前运行的设备的特性。为了实现这一点,必须根据当前设备的特性动态改变各个Fragment的布局,必须确保以这样的方式实现Fragment,即每个Fragment都可以有效地发挥作用,而不影响Activity内其他Fragment的行为或甚至存在的布局的变化。

1、动态加载Fragment布局

    创建一个灵活的用户界面要求在一个Activity中Fragment的布局和定位能够根据设备特性的差异而改变。可以在应用程序中包含代码,以响应运行应用程序的设备的形状因素动态安排Fragment,但在大多数情况下,这样做不仅是不必要的,而且也是不可取的。用户界面和应用程序代码之间的依赖关系越深,越难以维护和增强应用程序。尽管用户界面和应用程序代码之间始终存在某种程度的依赖关系,但应当尽量减少这种依赖关系,并尽可能在布局资源中尽可能多地执行与用户界面布局相关的工作。在应用程序与用户界面之间建立灵活性的最简单方法是利用Android资源系统内置的设备适应性。 Android允许我们为应用程序设计不同的布局相关资源,每个资源都针对特定的一组特定设备进行了优化(并与之关联)。在运行时,Android资源系统负责为当前设备自动选择和加载适当的资源。虽然此功能可用于动态修改任何活动的布局,但在与Fragment结合使用时,此功能特别有效。

效果图:

 

在图中,当手机屏幕为竖屏时,空间较小,显示名人列表在上,详情介绍在下;当手机屏幕为横屏时(或为平板设备等),空间较大,如果仍然显示列表在上详情在下则阅读不方便,应布局为列表与详情水平一致较好。

此时如果在Activity界面中进行代码控制则后期维护代价较高,此时应考虑采用Fragment,实现动态布局的效果。

    1.1、布局列表fragment_contacts_list.xml

    

    1.2、布局详情界面fragment_contacts_desc.xml

    

    1.3、布局竖屏activity_contacts.xml

    

    1.4、布局横屏activity_contacts.xml

    横屏需要在res文件夹中创建横屏布局资源文件夹layout-land;其次命名与layout文件夹中保持一致;

    

    1.5、创建ContactActivity,加载activity_contacts.xml

    

    1.6、创建ContactsListFragment,并加载fragment_contacts_list.xml

    

    1.7、创建ContactsDescFragment,并加载fragment_contacts_desc.xml

    

    运行程序,进入ContactsActivity,效果如上图。

    如果没有Fragment,将不得不在整个布局文件中为Activity添加单选按钮,文本视图和所有内容提供整个布局。 然后不得不维护两个复杂的,几乎完全相同的文件。 使用Fragment,单个Fragment是独立的且不复制的。Fragment以简单的方式修改布局,并简化应用程序的维护。

    如果更细致的适应不同尺寸大小的设备,则需要建立不同尺寸的布局文件夹(比如:w600),调试activity_contacts.xml;但逻辑代码却是相同的一套方案,利于后期的修改与维护;如果在设计之初通过代码控制来显示,由于交互与布局的耦合性太多,将会导致维护复杂,难于管理。

    Fragment可以预防意外情况,用户界面灵活性的真正测试在于用户界面设计和实现,在遇到意外更改请求时的正确性。精心设计的基于Fragment的用户界面能够创建令人难以置信的动态用户界面,这些用户界面可以在对代码影响最小的情况下发展和变化。

viewPager2实现fragment滑动 1.创建ViewPager2 ViewPager是一个容器,需要用来滑动的几个fragment放在ViewPager中,在ViewPager容器内的fragment可以通过ViewPager给的方法实现滑动。 ViewPager2是ViewPager升级版,Google的文档推荐用新版,本文所有的ViewPager都指的是ViewPager2这个新版,使用需要添加依赖,在module的build.gradle中添加: dependencies { implementation "androidx.v 阅读详情

相关推荐

74HC165级联踩坑实录:STM32读取32路开关状态,时序调试与常见问题排查

本文详细介绍了74HC165级联在STM32读取32路开关状态时的时序调试与常见问题排查。从硬件设计的PCB布局优化、电源噪声控制,到软件时序的精确调校和数据采集策略,提供了完整的解决方案。通过逻辑分析仪和示波器的高效使用,解决了信号延迟和干扰问题,最终实现了稳定可靠的32路信号读取。

weixin_34046298的博客 313

Android 环信集成使用总结

最近因为项目需要,需要集成环信。特此记录一下集成过程中遇到的问题, 1.头像显示 ui给出的设计的头像是圆形的,因为项目依赖的是easeui,本想着直接在easeui中修改头像控件,后来看到环信的EaseImageView本身就提供的有设置radius的api,查询后得知可以通过在application中初始化的时候设置EaseUI的属性来改变头像的角度,具体代码如下: //设置头像为圆形 ...

qq_506745564的博客 1221

YOLOv8中间特征层可视化

在通过观察这些特征,可以清楚地看到模型如何逐步将输入图像转化为有意义的表示。

weixin_45314480的博客 6890

Android读取选择联系人的模版代码实现

1、创建SelectContactActivity类,在AndroidManifest.xml添加类 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.co

zeb_perfect的专栏 1160

STM32串口调试踩坑记:HAL_UART_ErrorCallback里不先解锁,你的中断接收就废了

本文深入分析了STM32串口调试中HAL_UART_ErrorCallback的锁机制陷阱,指出在错误回调中不先解锁会导致中断接收失效的问题。通过解析HAL库源码,提出了正确的错误处理实现方法,并分享了预防措施与最佳实践,帮助开发者提升串口通信的可靠性。

weixin_33733810的博客 512

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

【快速搞定】教你如何快速集成环信(android端EaseUI),跳过我踩过的坑

【快速搞定】教你如何快速集成环信(android端EaseUI),跳过我踩过的坑一、前言 最近,公司准备集成一个即时通讯的功能,于是我找到了环信,于是我就这样被坑了,于是就有了本文来教大家如何跳出我踩过的坑,于是…… 说环信比较坑并不是它们的产品不好,相反它们的功能做得还不错(本人承诺绝对不是托),而是它们写的文档真的是太乱了,一不小心你就会入坑(还好环信的技术客服还算给力,很多问题都能详细的给

大力哥的博客 1万+

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 148

Android修改环信easyui,EaseUI 使用指南

EaseUI 使用指南简介EaseUI 是一个 UI 库,封装了 IM 功能常用的控件、fragment 等等,旨在帮助开发者快速集成环信 SDK。EaseUI 及 Demo 的 GitHub 下载地址为:注意:因为这是一个 UI 库,后续很可能还会继续改动,新旧版本在 API 的兼容上不会像 IM SDK 那样绝对的兼容。代码导入EaseUI 库的代码是开源的,下载的 SDK 压缩包里面已经包含...

weixin_33664191的博客 1297

疾风气象大模型4.0白皮书

《疾风气象大模型白皮书摘要》 疾风气象大模型(J-AFM)是国内首个基于3D建模的气象智能平台,突破传统二维气象分析的局限,采用体素化技术构建"x-y-z-t"四维统一模型,实现从分钟级短临到30天跨时效的连续预测。核心技术包括:1)多源数据三维同化,融合雷达、卫星、风廓线等异构数据;2)物理约束AI解码器,嵌入能量守恒、湍流封闭等气象原理;3)行业适配插件,服务风电、光伏、航空等领域,如山地风场尾流校正、云影短临预测。平台支持批流一体推理与边缘部署,提供概率化输出和误差溯源能力,显著降

专注AI大模型,软件混淆,授权 540

企业如何开展BI建设--指标体系建设

很多企业的数字化转型工作都是从做BI项目开始的,很多企业认为,BI就是做指标大屏,所以做了很多的驾驶舱,也做了很多指标,有从系统取的,有手工填报的,甚至手工填报的比例占到了70%,最终BI沦为了填报系统,业务认为BI就是把从线下的微信沟通转到了线上录入展示,并没有给业务代来任何提升,久而久之,BI大屏就没人关心,公司高层也认为数据都是填报的,都经过了加工处理,这种数据不可信,不能反映业务开展的实际。其实在BI系统建设之前,我们首先要做的就是要梳理企业的指标,到底我们要展示哪些指标?

263

android导入环信,使用环信UI的API的方法

下载sdk,前面介绍使用无UI的API中有下载的地址, 解压,打开解压好的文件 ,选择examples,打开 ,删掉里面的simpledemo文件 ,这是里面自带的一些案例没什么用,不需要 如果用android Studio导的话就先建个lib,里面的包名需要和下面一条中的包名一样 打开里面的easeui文件夹,里面有src,里面的java类,需要我们建立一样的包,com.example.emtes

Dr_abandon的博客 3183

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android Fragment 你应该知道的一切

转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/42628537,本文出自:【张鸿洋的博客】很久以前写过两篇Fragment的介绍,主要就是介绍其功能:Android Fragment 真正的完全解析(上)和Android Fragment 真正的完全解析(下) 有兴趣的可以凑合看下。之前的博客属于怎么使用Fragment,本文目

Hongyang 25万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ViewPager2+Fragment

ViewPager2 的使用和介绍

victorrrrt的博客 8543

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android Fragment完全解析,关于碎片你所需知道的一切

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。因此,我们今天的主角Fragment登场了

郭霖的专栏 31万+

关于Fragment你所需知道的一切

Fragment是Android API中的一个类,它代表Activity中的一部分界面;您可以在一个Activity界面中使用多个Fragment,或者在多个Activity中重用某一个Fragment。 本文将介绍Fragment的定义、创建、添加、移除、生命周期 等,如需访问官方原文,您可以点击这个链接:《Fragments》。 Fragments 可以把Fra

scott2017的博客 2076

Android - ViewPager2 Fragment

Android ViewPager2 Fragment 示例代码

搬砖 3688

Android ViewPager2+Fragment+TabLayout的简单使用

【1】ViewPager的简单使用 来看个ViewPager的简单使用的例子(使用Androidx包下的ViewPager,不是ViewPager2) 看看主界面中的布局: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns.

zjcoming 6478

Android 进阶——你所知道的Fragment或许比你想象中要更强大

Fragment是一个具有自己相对独立生命周期的高级“View”。

最美不过,心中有梦,身旁有你! 2300

Android实战开发中Fragment你所应该知道的一切

本文为自己多年来在Android实战开发过程中总结归纳的一些常见问题,现在分享出来希望对初学者有所帮助。 本文出自门心叼龙的博客,转载请注明出处: https://blog.youkuaiyun.com/geduo_83/article/details/86559417 目录 1. 请简述Fragment的意义? 2. 将一个Fragment添加到Activity布局的方式有几种? 3. 简述...

门心叼龙的专栏 3347
上一篇: Fragment应该知道的一切(1)
下一篇: MVC模式讲解与实例
Litepal
博客等级 码龄12年 17粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值