鱼C论坛

 找回密码
 立即注册
查看: 2162|回复: 1

[学习笔记] 碎片Fragment

[复制链接]
发表于 2019-11-4 09:53:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关于碎片的应用:
        我们在使用Android Studio时有时会用到碎片,碎片可以作为显示实际内容的载体,也可以作为加载其它视图(View)的载体。
        碎片必须有与之配套的布局内容,布局内容通常在碎片的onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)方法中被引用。
        使用布局加载器(LayoutInflater )的inflate()方法加载碎片布局。
        当碎片布局加载完毕后,还要将碎片引用到与显示的活动的布局文件中去,使用android:name="文件路径(包名+文件名)"引用。
        由于碎片中使用了LayoutInflater 加载碎片布局,所以android:name="文件路径(包名+文件名)"实际上是添加的碎片布局。
        当碎片作为加载其它视图(View)的载体时:
                我们需要在碎片布局中添加一个子项布局,同时创建该子项布局的XML文件,通过适配器将其加载到碎片布局中。
                例:我们需要做一个新闻标题的ListView视图。
                1.首先我们要建立新闻实体类、新闻标题的子项布局(news_item.xml)。
                2.随后,建立新闻标题的碎片、新闻标题碎片布局(news_title_frag.xml)。
                3.创建配置器加载新闻标题的子项布局(news_item.xml)。
                4.在碎片中实例化新闻标题碎片布局(news_title_frag.xml)的ListView,并使用setAdapter()方法建立ListView与数据集的连接。
                5.第4步应该写在onCreateView中。
        onCreateView属于碎片的生命周期的环节之一,在碎片的布局内容作为视图在活动中出现时调用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-4 10:03:35 | 显示全部楼层
如果不想使用android:name="文件路径",可以使用动态加载的方法。
该方法一般写于要加载碎片的活动中。
1.首先创建碎片实例。
2.得到FragmentManager,调用getSupportFragmentManager()方法得到。
3.开启一个事务。FragmentTransaction,调用FragmentManager的beginTransaction()方法得到。
4.向容器内添加或替换碎片,使用FragmentTransaction的replace()方法得到。
4.5.使用FragmentTransaction的addToBackStack(null);将碎片存入返回栈中。
5.提交事务。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表