频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
关于Android fragment的用法总结
2018-07-11 11:15:44      个评论    来源:Rupert_dai  
收藏   我要投稿

什么是fragment

可以将fragment想成Activity中的模块,它有自己的布局,生命周期,并且能单独处理自己的输入。可以把fragmen设计成多个Activity中可以复用的模块(下面会给出一个fragment独立的和acitivty脱耦合的使用模板)。记得在有些低系统版本上要使用fragment需导入support-v4包。另外如果用的v4包,那么使用fragment的activity要继承FragmentActvitiy而不是Activity。

fragment的生命周期:fragment必须嵌入Activity中使用,所以fragment生命周期和Actvitiy是相关的,具体见下图:

\

可以看出和Aactivity生命周期非常相似,在fragment进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中(fragment回退栈具体操作下面会详细说明)。

fragment的使用:在onCreateView()方法中进行加载fragmentUI的操作

大家应该能看明白吧

inflate()方法的三个参数:

第一个是resource ID,指明了当前的Fragment对应的资源文件;

第二个参数是父容器控件;

第三个布尔值参数表明是否连接该布局和其父容器控件,在这里的情况设置为false,因为系统已经插入了这个布局到父控件,设置为true将会产生多余的一个View Group。

需要注意的是,onCreateView()方法里面必须返回view,没有的话可以返回null。注意的是:如果继承自ListFragment,onCreateView()默认的实现会返回一个ListView,所以不用自己实现。

一般在onViewCreate()方法中进行一些控件初始化操作(寻找控件ID,设置点击事件什么的),注意必须在onCreateView之后进行,否则会报错。

将fragment嵌入Acitivity有两种方法:

第一种:直接在acvtivity布局文件里面把fragment当成控件一样写进去,这种嵌入方法是静态的

注意要写上name,就是要嵌入的fragment的在项目中的完整类名。

第二种:通过代码的方式动态的将fragment加入父布局

首先拿到FragmentManager,通过FragmentManager获得fragmentTransaction,再获得fragment实例,通过fragmentTransaction.add方法将fragment加入父布局,记得调用fragmentTransaction的commit方法。R.id.fragment_container一般是framelayout,便于进行fragment的加入,替换,和隐藏。

点击复制链接 与好友分享!回本站首页
上一篇:介绍一下Android系统架构和应用程序的基本概念
下一篇:使用AndroidStudio3.0以及新版Gradle转移旧版项目遇到的几个问题和分析
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站