
Android Fragment 创建不同页面
开启事务:使用 FragmentTransaction 获取当前 Fragment 的事务。 隐藏其他 Fragment:在切换 Fragment 时,先隐藏当前显示的 Fragment。 显示当前 Fragment:将新 Fragment 添加至事务并显示。 提交事务:确保事务提交后,Fragment 更新显示。
发布日期:2021-05-07 23:05:24
浏览次数:16
分类:精选文章
本文共 1718 字,大约阅读时间需要 5 分钟。
Android Fragment 开发指南
1. Fragment 介绍
Fragment在Android系统中自3.0版本起引入,旨在解决大屏幕设备的布局问题。与传统的Activity类似,Fragment可以承载布局,适合将屏幕划分为多个部分,实现更高效的界面管理。
2. Fragment 特点
- 依赖 Activity:Fragment需嵌套在 Activity 中使用,不能独立存在。
- 多Fragment支持:一个 Activity 可包含多个 Fragment,且一个 Fragment 可在多个 Activity 中使用。
- 事务管理:通过 transaction 的 add、remove、replace 方法动态管理 Fragment 显示。
- 生命周期控制:Fragment 的生命周期受宿主 Activity 影响,例如 Activity 销毁会导致 Fragment 也销毁。
3. Fragment 创建与切换
3.1 Fragment 类型与布局
- 创建 Fragment 类:继承 Fragment 类并重写 onCreateView 方法。
- 加载布局:使用 LayoutInflater 加载自定义布局文件。
import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;public class FragmentOne extends Fragment { @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout_1, container, false); return view; }}
3.2 Fragment 显示流程
4. Fragment UI 管理与 Activity 列表切换
4.1 Fragment 事务管理
- 创建 Fragment:在需要显示时,检查 Fragment 是否已存在,若不存在则创建。
- 隐藏其他 Fragment:确保切换时仅显示当前 Fragment。
- 更新 UI 状态:根据 Fragment 切换情况,动态调整界面元素状态。
4.2 Activity 点击事件处理
- 设置点击监听:在 Activity 的 UI 组件上设置点击事件,触发 Fragment 切换逻辑。
- 更新布局状态:根据 Fragment 切换情况,动态调整 Activity 界面元素的背景颜色等视觉状态。
5. Fragment 操作封装
- Fragment 事务操作:封装 FragmentTransaction 操作,简化调用。
- Fragment 显示逻辑:统一管理 Fragment 显示流程,避免重复代码。
通过以上方法,可以轻松创建并管理 Fragment,实现多屏幕布局的灵活管理。Fragment 的使用不仅提升了界面设计的灵活性,也优化了资源管理效率。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月03日 23时02分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
第十一届蓝桥杯python组第二场省赛-数字三角形
2019-03-04
数字三角形的无返回值的深度优先搜索解法
2019-03-04
完全背包问题的简化思路
2019-03-04
Jquery添加元素
2019-03-04
Jquery使用需要下载的文件
2019-03-04
BST中某一层的所有节点(宽度优先搜索)
2019-03-04
广度优先搜索
2019-03-04
猜字母
2019-03-04
Linux网络环境配置(设置ip地址)
2019-03-04
Idea使用Spring Initializr来快速创建springboot项目
2019-03-04
Dijkstra算法的总结
2019-03-04
ubuntu中安装scikit-learn
2019-03-04
SpringCloud和SprinBoot之间的关系
2019-03-04
javascript定义变量及数据类型介绍
2019-03-04
C语言的运算符和表达式
2019-03-04
椭圆曲线密码系统——椭圆曲线
2019-03-04
Vue实现选项卡功能
2019-03-04
数据结构——链表
2019-03-04
【Python】面向对象,封装
2019-03-04