引言:在Android开发中,我们都知道一些界面的展示经常会用到的就是Activity,但是Activity存在着很大的局限性,比如说手机上的界面显示在平板上面就会发生各种变形的问题,Activity也无法实现局部的数据刷新,所以Android3.0之后出来了Fragment,Fragment通常是嵌套在Activity中来使用,提高了界面显示的灵活性。

一、Fragment简介

Fragment也被称作碎片,它相当于一个小型的Activity,您可以将碎片视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且可以在 Activity 运行时添加或删除片段。同时碎片必须始终嵌入在Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。

二、Fragment的应用场景

1.用一套代码适配横竖屏和平板

假设有两个界面,在手机竖屏和平板竖屏的时候是分为两个Activity来实现的,而在手机横屏和平板横屏的时候在同一个Activity中显示两个界面,这个时候用Activity就不好实现,我们采用碎片Fragment来进行实现;

(1).分别在Layout与Layout-land下面创建一个名字相同的Fragment布局文件.这样做的原因是显示的过程中系统会根据横竖屏而去加载不同的布局来达到适配的效果;

(2)创建两个Fragment

(3).创建一个接口回调来实现两个Fragment之间的通信;

(4).当点击第一个Fragment上需要在第二个Fragment作出对应的响应的时候,通过判断横竖屏来进行显示

在竖屏的情况下只显示一个Fragment,横屏两个Fragment都会显示

三、Fragment与FragmentTabHost的组合使用

FragmentTabHost作为Android4.0版本的控件, 已经被项目广泛使用, 5.0版本又推出TabLayout+ViewPager显示多页;

1.Fragment与FragmentTabHost的组合使用的两种常用方式

(1).菜单栏在上方的实现方式

(2).菜单栏在底部的实现方式

(3).添加对应的Fragment到对应的TabHost中

2.如何通过修改FragmentTabhost源码来避免对应的Fragment重新绑定

如果使用原生的类在切换Tabhost对应的Fragment的时候都会触发重新绑定Fragment,但是在实际的项目应用过程中我们并不希望重新绑定导致Fragment重新加载,所以需要修改源码中影响Fragment生命周期的代码,在其doTabChanged()方法中做如下修改即可:

四、总结

本文涉及到了Fragment的使用以及Fragment和Fragment Tabhost的主要使用场景及在使用过程中遇到问题的解决方式,相信做Android开发的朋友都知道,这两者的组合在很多APP中是很常用的,在用的过程中可能也会遇到一些奇怪的现象,比如说在切换底部菜单栏的时候会导致对应的Fragment重新加载,这里就告诉大家如何去修改对应的源码来实现避免切换的时候重新加载数据;

android使碎片切换界面,玩转Android中的碎片Fragment相关推荐

  1. android用来显示界面的组件,Android 自学之基本界面组件(上)

    文本款(TextView)和编辑框(EditText)的功能和用法 TextView直接继承了View,他还是EditText.Button两个UI组件的父类,TextView的作用就是在界面上显示文 ...

  2. android+矢量图+插件,如何玩转Android矢量图VectorDrawable

    从5.0(api等级21)开始,android开始支持矢量图了.关于什么是矢量图以及矢量图有什么优缺点不在本文的涉及范围之内,具体可以参考矢量图百科.不过这里要提一下它的优点: 保存最少的信息,文件大 ...

  3. android 点击切换下一题,android 仿考题左右滑动切换到下一题

    匿名用户 1级 2016-11-13 回答 用ViewPager +  Fragment,很简单的, package com.example.viewpagerdemo; import java.ut ...

  4. android微信首页切换界面

    这实例很多人仿做,好实例还是不容错过!最重要是素材容易拿~ 效果: 默认3页面的切换,最后一个页面带按钮,点击进入另外一个页面 思路: 1.准备5个布局页面,1个为主函数布局页面,3个为切换的页面(其 ...

  5. Android Studio 一键切换界面风格

    前言 做开发3年多了 一直用着黑色的主题 比较习惯 然后在群里看到大佬的android studio 配色看起来很鲜艳 让人心生愉悦 于是自己也找一下有没有好看的主题 一键适配! MaterialUI ...

  6. android横竖屏切换不刷新,关于Android中使用BottomNavigationView切换横屏导致返回主页的问题...

    ##问题: 如图,"发现"页即为主页,然后我们切换到"我"页,一切正常. 那么问题来了,如果切换到"我"页后把手机横屏,则会出现下面的情况. ...

  7. android studio 微信登录界面,如何使用Android Studio开发用户登录界面

    满意答案 zhou9081 2016.05.21 采纳率:51%    等级:7 已帮助:411人 如何使用Android Studio开发用户登录界面,具体解决方案如下: 解决方案1: <:t ...

  8. android4.2 原生设置,干净整洁Android 4.2原生界面_手机Android频道-中关村在线

    里奥1080P-N003在系统方面采用了Android 4.2版本,在界面上保持了原生的UI界面,在系统的整体流畅性上有一定的保障,并且相对于大部分定制ROM来说,看起来更加简洁,当然对于这方面笔者认 ...

  9. Android社团活动设计界面图,基于Android的社团管理APP设计

    一.基本信息 标题:基于Android的社团管理APP设计 作者:张晏齐,田菲,杨洁,杨树媛 时间:2018 来源:中国知网 二.研究背景 随着互联网技术的飞速发展和智能手机的广泛应用,APP作为基于 ...

最新文章

  1. jQuery 一次定时器_干货 | 小论定时器玩法(时间轮询法)
  2. CAD绘图控件VectorDraw web library (javascript)更新至v7.7014.1.0丨75折优惠
  3. js中获取事件对象的方法小结
  4. WPF 与Surface 2.0 SDK 亲密接触 - 图形缩放篇
  5. CGGeometry基础
  6. python语言print函数_Python 的 print 函数
  7. 8、SpringBoot+Mybatis整合------参数取值方式
  8. python内嵌函数和闭包与java 匿名内部类_Java匿名内部类构造原理分析
  9. C#中的线程lt;一gt;
  10. python 切割_Python切割九宫格图
  11. java从0单排之java就业培训教程复习与面试题回顾——02
  12. 实对称矩阵的特征值求法_【8】实(反)对称矩阵的特征值
  13. ABBYY软件对PDF文本审阅操作之盖章
  14. 最新的TK免费域名注册申请域名解析及绑定TK域名到空间
  15. PDF转Word图片转Word教程(附工具地址)
  16. win10任务栏卡死重启也没用
  17. Excel宏的录制与调用
  18. C++中的peek()函数及其用法
  19. 于树莓派安装Ubuntu系统
  20. wordpress怎么将文章发布在指定页面?

热门文章

  1. YII2 服务器验证码不显示
  2. mongodb $unwind 聚合管道
  3. jquery.easyui常用示例
  4. php 日期时间 取日期,从PHP中的文本中提取日期,时间和日期范围
  5. Eclipse中单元测试
  6. docker 安装部署nacos
  7. 【离散数学中的数据结构与算法】二 欧几里得算法与裴蜀等式
  8. 关于python中带下划线的变量和函数 的意义
  9. hdu--1231--并查集连分量的个数
  10. 异步编程中的最佳做法(Async/Await) --转