通常,Fragment作为Activity整体视图层次树的一部分,被嵌入到宿主Activity的界面的一部分。有两种方法能够把Fragment添加到Activity布局中:
1. 在Activity布局文件的内部声明Fragment。
你能够像一个视图那样给Fragment指定布局属性。下例说明了给Activity指定两个Fragment的布局文件。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.example.news.ArticleListFragment" android:id="@+id/list" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="com.example.news.ArticleReaderFragment" android:id="@+id/viewer" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout>
在<fragment>元素中的android:name属性指定了在布局中要实例化的Fragment。
当系统创建这个Activity布局时,它实例化在布局中指定的每一个Fragment,并且分别调用onCreateView(),来获取每个Fragment的布局。然后系统会在Activity布局中插入通过<fragment>元素中声明直接返回的视图。
注:每个Fragment需要一个唯一的标识,这样能够在Activity被重启时系统使用这个ID来恢复Fragment(并且你能够使用这个ID获取执行事务的Fragment,如删除)。有三种给Fragment提供ID的方法:
A. 使用android:id属性来设置唯一ID;
B. 使用android:tag属性来设置唯一的字符串;
C. 如果没有设置前面两个属性,系统会使用容器视图的ID。
2. 编程给一个既存的ViewGroup添加Fragment。
在Activity运行的任何时候,都可以把Fragment添加到Activity布局中。你只需要指定一个放置Fragment的ViewGroup。要在Activity中使用Fragment事务(如添加、删除、或替换Fragment),必须使用来自FragmentTransaction的APIs。你能够向下面例子那样从Activity中获取一个FragmentTransaction实例:
FragmentManager fragmentManager = getFragmentManager() FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
然后,你能够使用add()方法把Fragment添加到指定的视图中,如:
ExampleFragment fragment = new ExampleFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit();
传递给add()方法的第一个参数是Fragment应该被放入的ViewGroup,通过资源ID来指定这个ViewGroup,第二个参数是要添加的Fragment。
一旦FragmentTransaction对象发生了改变,就必须调用commit方法来提交改变的影响。
相关推荐
我们可以将多个Fragment组合到一个Activity中创建一个多面界面,也可以在多个Activity中重用一个Fragment。 Fragment概述 我们可以把Fragment视为模块化的一段Activity,它具有自己的生命周期,接收它自己的事件...
然后你写的activity不能再继承自Activity类了,而是要继承android.support.v4.app.FragmentActivity,一些其他的父类也有相应的变化. 由于在android的实现机制中fragment和activity会被分别实例化为两个不相干的对象,...
FragmentActivity+多个Viewpage+Fragment universal-image-loader http封装
主要介绍了Android开发教程之Fragment定义、创建与使用方法,详细介绍了Fragment的概念、功能、定义、创建及使用方法,包括Fragment与Activity通讯,Fragment事务执行及Fragment应用示例等,需要的朋友可以参考下
###Andriod Seamless ViewPager Header ####Introduction SeamlessViewpagerHeader ...Support in both Activity and Fragment ####Sample Apk ####Usage It is difficult to seperate the project as a library, the
Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...
1、ViewPager+PagerAdapter 2、FragmentManager+Fragment利用FragmentTransaction对fragment进行hide和show操作实现 3、ViewPager+FragmentPagerAdapter ,主activity继承于FragmentActivity,因为创建...
基于OkHttp编写1,特点支持Kotlin协程,RxJava2,RxJava3 支持Gson,Xml,ProtoBuf,FastJson和其他第三方数据解析工具支持自动关闭FragmentActivity,Fragment,View,ViewModel和任何类中的请求支持全局加密和...
Android底部标签页的代码例子,提供了三种实现方式,分别是:使用TabActivity实现、使用ActivityGroup实现、使用FragmentActivity实现。
在Andriod中,所有的界面元素都要通过windowmanger来实现,像Activity、Fragment等等这些也是在其上实现。因此,我们的悬浮窗自然要通过这个实现。 这个项目中,我们自定义了两个悬浮窗view。我们以其中一个比较简
支持全局加解密,添加常用参数和头部,网络缓存,都支持单独设置一个请求 2、用途 1、添加依赖和配置 必需的 使用以下命令将其添加到您的 build.gradle 中: allprojects { repositories { maven { url " ...