- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fragment笔记教程
Fragment(碎片,片段):代表屏幕(也就是Activity)的一部分,相当于一个轻量级的Activity.作用:按功能把屏幕(Activity)划分成几部分,提高了运行效率.和功能区分(补充:安卓平板3.0,手机4.0,以后出现的一个新型控件,所以要注意兼容问题.)效果:在同一个Activity中切换不同的界面.
提示:故使用前必须把AndroidManifest.xml里uses-sdk属性内的最低版本android:minSdkVersion=8,改成大于11的参数方可.注意:?两个包下的fragment创建思路,产生效果是一致的,但是具体方法,类名略有不同.?
继承fragment有两个包,一个是API自带的,不具备兼容性,一个是V4包下的,具有兼容性.一般我们开发最好用v4包下的.
Fragment控件的创建流程有两种方式:前提:自定义类去创建fragment??? 1.自定义一个类继承Fragement,复写onCreateView方法,返回一个View(Fragment显示的布局内容,使用打气筒原理)??????? public class xxx extends Fragment {??????????? //系统第一次绘制Fragment的UI界面时调用, 需要返回一个view作为Fragement上显示的内容??????????? public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){??????????????? //使用填充器将一个布局转换成view对象??????????????? View view = inflater.inflate(R.layout.xxx(布局资源), null);? ??? ??? ??? ? //把填充的布局返回出去??????????????? return?view;}??????? }提示:fragment里没有FindViewById()方法,所以不能直接使用,但是在View里有这个方法,故可以用view.findViewById()来替代
A.在需要引用Framgent的Activity布局中声明一个fragement控件标签,配置其4个属性,前3个属性缺一不可(不常用,我在开发中从来不用,但要知道)??????? fragment??????? android:name=包名.类名??????? android:layout_width=match_parent
??????? android:layout_height=match_parent? ? ? ??android:id=@+id/XXXX/
?B.在java代码里动态的使用Fragment(常用):(定义好之后,不论布局控件位置怎么换,只要id不变,Fragment的设置就不会改变)提示:一个Activity类里创建一个FragmentManager对象即可,抽取为成员变量,可以反复调用.?//非兼容模式的fragment.不能运行在4.0版本以下的手机上.实际Android发展到今天,公司在开发app时,已经不考虑4.0以下的手机用户了(看友盟统计).
0.创建一个继承了Fragment的自定义Fragment子类对象.
fragment1?fragment1=new?fragment1();
1.通过静态getFragmentManager,获取一个fragment管理对象,这个FragmentManager可以抽取为全局变量,反复使用.
FragmentManager?fragmentManager?=?this.getFragmentManager();
2.利用fragment管理对象,开启事务,获取一个事务对象(只要使用到了事务对象,最后都要用到commit()方法,提交事务,且这个不能抽取)
FragmentTransaction?beginTransaction?=?fragmentManager.beginTransaction();
3.使用Fragment事务对象,调用replace替换方法,将activity布局中的一个已经存在的控件(一般该控件为FrameLayout容器)替换成Fragment子类
//containerViewId:布局文件中Fragment将要替换的控件的id???? fragment:替换的Fragment???? tag:在Fragment管理器中为Fragment添加标示
beginTransaction.replace(R.id.temp,frag
文档评论(0)