跟我学Android UI高级之十五碎片Fragment
2016-07-25 17:25
281 查看
本章内容
Fragment介绍
创建Fragment
替换和移除Fragment
Fragment与activity通信
Android在3.0中引入了Fragments的概念,主要的目的是用在大屏幕的设备上,例如平板电脑,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。
Fragment可以作为Activity界面的一部分组成出现。
可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用。在Activity运行过程中,可以添加、移除或替换Fragment,
Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期会受宿主Activity的生命周期影响
Fragment生命周期回调方法:
onAttach(Activity)
当Fragment与Activity发生关联时调用
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
做Demo的问题,
Android.app.Fragment 兼容的最低版本是android:minSdkVersion="11" 即3.0版
android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion="4" 即1.6版
2.需要导jar包
fragment android.support.v4.app.Fragment 需要引入包android-support-v4.jar
3.在Activity中取的方法不同
android.app.Fragment使用 (ListFragment)getFragmentManager().findFragmentById(R.id.userList) 获得 ,继承Activity
android.support.v4.app.Fragment使用 (ListFragment)getSupportFragmentManager().findFragmentById(R.id.userList) 获得 ,需要继承android.support.v4.app.FragmentActivity.
--------------------------------------------------------------------------------------------------------------------------------------------------------
动态添加碎片的步骤:
1.创建待添加的碎片对象;
2.获取FragmentManager的对象,使用getFragmentManager()方法得到;
3.开启一个事务,通过调用beginTransaction()方法开启.
4.向容器内加入碎片,一般使用replace()方法开启,需要传入容器的id和待添加的碎片对象;
5.提交事务,调用commit()方法来完成。
在碎片中模拟返回栈,注意方法:addToBackStack(null);
Fragment介绍
创建Fragment
替换和移除Fragment
Fragment与activity通信
Android在3.0中引入了Fragments的概念,主要的目的是用在大屏幕的设备上,例如平板电脑,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。
Fragment可以作为Activity界面的一部分组成出现。
可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用。在Activity运行过程中,可以添加、移除或替换Fragment,
Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期会受宿主Activity的生命周期影响
Fragment生命周期回调方法:
onAttach(Activity)
当Fragment与Activity发生关联时调用
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
做Demo的问题,
android.support.v4.app.Fragment和android.app.Fragment区别
1.最低支持版本不同Android.app.Fragment 兼容的最低版本是android:minSdkVersion="11" 即3.0版
android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion="4" 即1.6版
2.需要导jar包
fragment android.support.v4.app.Fragment 需要引入包android-support-v4.jar
3.在Activity中取的方法不同
android.app.Fragment使用 (ListFragment)getFragmentManager().findFragmentById(R.id.userList) 获得 ,继承Activity
android.support.v4.app.Fragment使用 (ListFragment)getSupportFragmentManager().findFragmentById(R.id.userList) 获得 ,需要继承android.support.v4.app.FragmentActivity.
--------------------------------------------------------------------------------------------------------------------------------------------------------
动态添加碎片的步骤:
1.创建待添加的碎片对象;
2.获取FragmentManager的对象,使用getFragmentManager()方法得到;
3.开启一个事务,通过调用beginTransaction()方法开启.
4.向容器内加入碎片,一般使用replace()方法开启,需要传入容器的id和待添加的碎片对象;
5.提交事务,调用commit()方法来完成。
在碎片中模拟返回栈,注意方法:addToBackStack(null);
相关文章推荐
- c# 根据枚举Value 获得名称
- Wiggle Subsequence
- 使用EasyUI,关于日期格式的文本框按照正常方式获取不到值的问题
- textAligment、contentVerticalAlignment、contentHorizontalAlignment 和 contentMode 的对比
- 精确获取时间(QueryPerformanceCounter)
- 如何在MenuItem中添加icon图标
- 【maven 报错】maven项目执行maven install时报错Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
- poj 2299 Ultra-QuickSort (树状数组求逆序数)
- Request获取项目决定路径
- POJ 3071 Football—概率DP-conquer sea博客
- ServletActionContext.getRequest().getSession() 和 ActionContext.getContext().getSession()
- HBuilder标题栏如何穿标题呢
- 修改UITextfield的Placeholder字体的颜色
- HDU 5749 Colmerauer
- poj 2127 Greatest Common Increasing Subsequence
- 【IOS】UITableView固定headerView的方案
- Volley学习(三)ImageRequest、ImageLoader、NetworkImageView源码简读
- UI基础_自定义等高Cell_storyboard封装_版本_有GIF_源代码
- 并发编程之Operation Queue和GCD
- UI基础_自定义等高Cell_xib封装_版本_有GIF_源代码