fragment基础

一、fragment的设计哲学

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

二、fragment的静态加载

静态加载1

Fragment与Activity通信:
1、fragment加载方式:静态加载、动态加载
2、静态加载:在activity的layout文件中声明Fragment,需要特别注意的是<fragment>中的android:name属性指定了在layout中实例化的Fragment类。
标识Fragment的方法: android:id属性提供了一个唯一ID
android:tag属性提供了一个唯一字符串

静态加载2

这节课的思路是现有的一个MainActivity(主界面),它的布局文件是Main.xml(RadioGroup,RadioButton)之后老师创建了一个MainActivity2(静态加载Fragment的界面),它对应的布局文件是Main2.xml(这个布局里添加了一个Fragment标签->静态加载),并在这个xml文件中为Fragment标签定义了:name="MyFragment"属性,这个属性对应了Fragment标签对应的包和类-->这个MyFragment.java(继承Fragment),并重写onCreatView(),这个方法返回一个view对象。并为这个类声明创建了一个布局文件(fragment.xml)。并添加了一个TextView和Button,通过inflate.infalte()将布局文件添加在到这个MyFragment中。-->回到MainActivity2通过setContextView()将main2.xml加载。
最后回到MainActivity.java为第一个RadioButton添加点击事件(通过intent意图,跳转到MainActivity2)
老师在MainActivity2中直接通过findViewById();将fragment.xml文件中的Button加载,这是因为通过层层加载,这个button已经在于main2.xml中了。
最后在清单文件中添加MainActivity2,并在main2.xml中为Fragment标签添加一个id或tag

三、动态加载

处理fragment事物
动态加载fragment
MyFragment2 fragment2=new MyFragment2();//new出一个fragment对象
FragmentManager fragmentManager=getFragmentManager();//得到fragment管理者
FragmentTransaction beginTransaction=fragmentManager.beginTransaction();//开始一个事物
beginTransaction.add(R.id.fragment, fragment2);//fragment事物添加一个fragment,
//R.id.fragment为fragment显示的位置id,fragment2为需要添加的fragment;
beginTransaction.addToBackStack(null);
//增加回退效果,手机物理返回按键可以回退到上一个界面而不是直接退出
beginTransaction.commit();//最后提交


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值