通常,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方法来提交改变的影响。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
然而,在使用Fragment时,有时会出现一个问题:当Activity由于配置更改(如屏幕旋转)等原因需要重建(recreate)时,内嵌的Fragment可能会被不正确地添加多次,导致界面重叠。这个问题通常与如何管理和恢复Fragment...
Fragment是一个可嵌入到Activity中的UI片段,它可以有自己的生命周期,接收用户输入,并与Activity进行数据交换。Fragment可以单独管理其视图和逻辑,从而提高了代码的可复用性和模块化。 二、XML中添加Fragment的...
Android Fragment的使用。...功能:用一个Activity来管理两个Fragment,并且在其中一个Fragment中,点击按钮,影响到第二个Fragment。Activity中用list来管理Fragment。fragment布局采用垂直排列。
- FragmentTransaction是FragmentManager的一个接口,用于对Fragment进行操作,如添加、替换、移除、隐藏和显示等。 - 使用`beginTransaction()`方法开始一个事务,通过`commit()`来提交这些操作,提交后系统会...
首先,Fragment是一个可以包含UI元素的类,它可以被添加到Activity中,也可以被移除或替换。Fragment有自己的生命周期,与Activity生命周期相辅相成,允许开发者更细粒度地控制UI和后台任务。 1. **创建Fragment** ...
本文将深入探讨如何实现从一个Activity跳转到Fragment,以及如何从Fragment返回到另一个Activity。 首先,我们来看如何从一个Activity启动Fragment。在Android中,Fragment不能直接启动,它必须嵌套在Activity中。...
Fragment则是一个可以添加到Activity中的UI模块,可以在不同的Activity之间重用。每个Fragment都有自己的生命周期,但同时也受到其所在Activity生命周期的影响。 要实现Fragment与Activity之间的通信,我们需要使用...
在Android应用开发中,微信Android客户端的实现是一个典型的案例,它展示了如何利用单个Activity和多个Fragment构建一个功能丰富的移动应用。在这个项目中,`WeChatDemo-master`压缩包文件包含了一个模仿微信功能的...
Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并没有提供onTouchEvent方法来监听触摸事件。因此,我们需要自己实现触摸事件的分发。 在Fragment中监听触摸事件可以使用接口来实现。首先...
Fragment-Back-Stack Fragment Back Stack manager while displaying fragments on single activity and need to maintain on back press Purpose We know that there is activity stack in Android. We don't need ...
首先,Fragment是在Android 3.0(API级别11)引入的,它的主要用途是增强Activity的功能,特别是在Tab导航设计中,每个Tab对应一个Fragment,使得Activity职责更加明确,同时也提高了代码的复用性。Fragment具有自己...
"Android-一个封装了启动模式的Fragment便捷使用库方便构建单Activity多Fragment轻量级框架"就是一个针对这一需求的开源库,它提供了更方便的方式来管理和控制Fragment的启动模式。 首先,让我们了解Fragment的基本...
Fragment可以在Activity中动态添加、删除或替换,这在设计适应不同屏幕尺寸和配置的应用时非常有用。当我们想要增强用户体验,使界面变化更加平滑和吸引人时,可以使用Fragment切换动画。本篇文章将深入探讨Android...
在Android应用开发中,Fragment和Activity之间的通信是一个关键部分,特别是在设计复杂用户界面时。Fragment是Android中的一个组件,它可以包含部分用户界面,而Activity则是应用程序的主要组件,它管理一个或多个...
1. **URI设计**:定义一个明确的URI结构,比如`activity://com.example.app.activity/fragmentId`,其中`com.example.app.activity`代表Activity的全类名,`fragmentId`表示要切换的Fragment的标识。 2. **路由注册...
Fragment可以在Activity之间动态地添加、移除或替换,使得应用在不同屏幕尺寸和配置下都能提供良好的用户体验。"Android fragment切换动画.rar"这个压缩包文件很显然是关于如何在Android中为Fragment切换添加动画...
在 Android 开发中,Fragment 是一个非常重要的组件,用于实现用户界面和业务逻辑的分离。然而,在实际开发中,我们经常需要动态加载 Fragment 和获取 Fragment 的实例,以满足不同的业务需求。 在本文中,我们将...
3. **Activity接收Fragment的消息**:在Activity中,你需要一个引用到Fragment的Handler,以便发送Message。这可以通过在Fragment的onAttach()方法中传递Activity的Handler来实现。 ```java @Override public void ...
- Activity作为Android应用程序中的主容器,负责管理一个或多个Fragment。它可以添加、删除、替换或隐藏Fragment,以实现不同界面间的切换和交互。 - Fragment有自己的视图层次结构,并且可以在Activity中独立存在...
在Android应用开发中,Fragment是Android SDK中的一个重要组件,它允许开发者在Activity中添加和管理多个界面片段。FragmentTools库正是为了简化这个过程而诞生的,尤其针对“单Activity + 多Fragment”以及“多模块...