Android碎片的简单应用

碎片

碎片的基本概念

碎片是一种可以嵌入到活动当中的UI片段,让程序更合理的运用大屏幕空间,它拥有自己的布局和生命周期,比较常见的应用是在新闻标题列表当中,在平板中屏幕很大,如果只显示一个标题活动,很浪费空间,这时不如设计一个标题碎片,一个内容碎片,在活动中引入这两个碎片,会使屏幕空间看起来更舒适合理。

碎片的基本创建和使用方式

  1. 创建碎片所展示的布局。
  2. 创建一个类继承Fragment。
  3. 在类中的onCreateView方法中加载刚刚写的动态布局。
  4. 把此碎片放置到准备加入的活动布局中。
    第一步 创建布局
    在这里插入图片描述
    在这里插入图片描述

第二步 创建类继承Fragment并加载布局
在这里插入图片描述
在这里插入图片描述

第三步 将写好的碎片加到活动布局中

这一步中,fragment中的name属性指明要添加的碎片类名,要将类的包名也加上!!!
在这里插入图片描述

碎片的动态添加

  1. 通过getSupportFragmentManager()方法得到FragmentManager对象。
  2. 通过该对象的beginTransaction()方法得到FragmentTransaction对象开启事务。
  3. 调用tracsaction的replace方法,传入两个参数,第一个为待添加碎片的容器id,第二个对象为碎片的实例fragment。
  4. 调用transaction的commit()方法提交该事务。
//创建一个MyFragment实例
MyFragment myFragment = new MyFragment();
//获取FragmentManager实例
FragmentManager fragmentManager = getFragmentManager();
//开启FragmentTransaction事务
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//通过事务向Activity的布局中添加MyFragment
fragmentTransaction.replace(R.id.main_activity_layout, myFragment);
//提交事务
fragmentTransaction.commit();

碎片和活动进行通信

  • 在活动中,FragmentManager类提供了一个fingFragmentById方法,可以找寻你创建的碎片,例如创建的是RightFragment碎片。即可用
RightFragment rightFragment = (RightFragment)getSupportFragmentManager().findFragmentById(R.id.right_frag);

然后在通过rightFragment来使用碎片中的方法。

  • 在碎片中可以直接用getActivity()方法来得到活动的实例,从而使用活动中相应的方法。

碎片的生命周期

  1. 碎片的生命周期内,有4中状态,分为运行状态,暂停状态,停止状态,销毁状态。
  2. 碎片的生命周期与活动的生命周期很相似,相比活动的生命周期,它多了五个,分别是:onAttach:当碎片与活动建立联系时调用。onCreateView:加载碎片的视图时调用。onActivityCreated:与碎片相关联的活动建立完成时调用。onDestoryView:碎片的视图被移除时调用,onDetach:碎片与活动取消关联时调用。
  3. 在这里插入图片描述

动态加载布局

  • 动态加载布局,应用于程序根据模拟器的屏幕尺寸自动选择加载相应的布局。

如何动态加载

  1. 在res文件下建立layout-large文件,在里面重新创建一个main-activity.xml文件。
  2. 当再次启动程序时,如果屏幕属于large大小,则会自动加载新建立的布局,如果是普通的大小,则还会加载原来的layout中的布局。
  3. 不仅仅可以建立laout-large,还有许多,比如layout-sw600dp等等,根据-后面的数据来判断屏幕的归属范围。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值