一、Fragment的设计哲学

  Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上——例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。

  针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。

  

下图是文档中给出的一个Fragment分别对应手机与平板间不同情况的处理图:

android之Fragment基础详解(一)

android之Fragment基础详解(一)

PS:简单的新闻浏览页面,使用两个Fragment分别显示新闻列表与新闻内容;

  Fragment在应用中应当是一个模块化和可重用的组件,因为Fragment定义了他自己的布局,以及通过使用他自己的生命周期回调方法定义了他自己的行为,可以将Fragment包含到多个Activity中。

二、静态加载Fragment

  Fragment知识概要:

    • Fragment 可以作为Activity界面的一部分组成出现(不能单独使用)
    • 可以在一个Activity中同时出现多个fragment,并且一个fragment也可以在多个activity中使用
    • 在activity运行过程中,可以添加、一处或替换fragment
    • fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期会受宿主activity的生命周期影响,比如Activity被destory销毁了,他也会跟着销毁

  android之Fragment基础详解(一)

 

onCreateView()方法

  Fragment第一次绘制它的用户界面的时候,系统会调用此方法,未来绘制Fragment的UI,此方法必须返回一个View,如果不显示UI,返回NULL即可。

 

  在activity的layout文件中声明Fragment,需要特别注意的是<fragment>中的android: name 属性指定了在layout中实例化的Fragment类

  标识Fragment的方法:

    android:id 属性提供一个唯一的ID

    android:tag 属性提供一个唯一字符串

1、fragment布局文件,显示fragment显示内容控件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:andro
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     
 7     <TextView
 8        android:
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         ></TextView>
12     
13     <Button 
14         android:
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         
18         />
19 </LinearLayout>
fragment.xml

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2019-03-20
  • 2021-12-28
  • 2023-02-06
猜你喜欢
  • 2021-05-06
  • 2021-09-27
  • 2022-12-23
  • 2021-12-16
  • 2021-08-11
  • 2021-08-07
  • 2021-10-16
相关资源
相似解决方案