碎片Fragment
关于碎片的应用:我们在使用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属于碎片的生命周期的环节之一,在碎片的布局内容作为视图在活动中出现时调用 如果不想使用android:name="文件路径",可以使用动态加载的方法。
该方法一般写于要加载碎片的活动中。
1.首先创建碎片实例。
2.得到FragmentManager,调用getSupportFragmentManager()方法得到。
3.开启一个事务。FragmentTransaction,调用FragmentManager的beginTransaction()方法得到。
4.向容器内添加或替换碎片,使用FragmentTransaction的replace()方法得到。
4.5.使用FragmentTransaction的addToBackStack(null);将碎片存入返回栈中。
5.提交事务。
页:
[1]