Fragment基础入门

1 Fragment是什么?

Frament也叫碎片,片段。是Google在Android 3.0引入的,主要为了给大屏幕的UI提供支持的。Frament可以理解为一个迷你的Activity或者是Activity的模块化的组件,它有自己的生命周期与显示界面,我们可以利用多个Frament嵌套在Activity达到以下的功能,如适配平板,或适配横竖屏幕,或者在程序运行的过程中动态的更改我们的UI界面。如下图:上图是显示应用运行在手机情况下,从一个列表页面跳转到详细页面的例子。如果我们不使用Fragment的情况,当应用运行在平板上面的情况,就只能显示放大版的手机显示的界面,为了利用平板的特性,Android在3.0版本中提供了Fragment技术,我们就可以将列表与内容以组件的方式插入,在手机上分屏显示两个内容,在平板上面就可以左右显示两个内容。

您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或删除片段(有点像您可以在不同 Activity 中重复使用的“子 Activity”)。

片段必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。

2 如何使用Fragment

2.1 创建Fragment

如果需要使用Fragment的话,需继承Fragment类,目前有两个Fragment类:

  • android.support.v4.app.Fragment

  • android.app.Fragment

第一种是sdk提供的是3.0以上提供的类,第二是 android support v4 版本提供的向下兼容类,建议使用第二个类。

继承Fragment至少需实现以下方法:

  • onCreateView() 系统会在片段首次绘制其用户界面时调用此方法,并将创建的UI界面返回

2.2 使用Fragment

  • 在 Activity 的布局文件加入 fragment 控件

  • 在代码中通过编程方式将片段添加到某个现有ViewGroup

2.2.1 在布局文件中添加一个Fragment
  <fragment android:name="com.example.news.ArticleListFragment"
        android:id="@+id/list"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

android:name 属性指定要在布局中实例化的 Fragment 类。注意如果是在xml中声明的Fragment的话,建议给这个Fragment设置id或者tag,以便后期来find查找该Fragment。

2.2.2 使用代码添加一个Fragment到某个现有ViewGroup
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().add(android.R.id.content, list,"abc").commit();

2.3 传值给Fragment

  • 不要通过写构造方法来传参,因为Android源码中是使用反射调用的无参构造方法,写带参数的构造方法会导致无法进行状态保存,并可能导致代码抛异常。

  • 通过Fragment的方法、或者回调进行传值

  • setArguments getArguments

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值