`

Andriod Fragment---给Activity添加一个Fragment(转)

 
阅读更多

通常,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方法来提交改变的影响。

分享到:
评论

相关推荐

    Andriod Fragment动画效果.zip

    在Android开发中,Fragment是应用程序界面的一个可重用组件,它可以独立于Activity存在,并且可以在多个Activity之间共享。Fragment提供了一种方式来处理更复杂的用户界面,特别是在平板电脑和其他大屏幕设备上,...

    安卓Andriod源码——Fragment例子.zip

    这个压缩包"安卓Andriod源码——Fragment例子.zip"显然是一个包含Fragment使用示例的代码库,名为"FragmentDemo",对于学习和理解Fragment的运作机制非常有帮助。 Fragment的设计初衷是为了在大屏幕设备如平板电脑...

    安卓Andriod源码——Fragment实现tab实例代码.zip

    这个“安卓Andriod源码——Fragment实现tab实例代码.zip”压缩包提供了一个使用Fragment实现Tab功能的具体示例,这对于理解和掌握如何在Android应用中创建动态和灵活的用户界面至关重要。 在Android的Tab布局中,...

    安卓应用底部菜单栏+fragment

    Fragment是Android SDK中的一个组件,它允许在一个Activity中展示多个可交互的UI部分。 一、底部菜单栏(Bottom Navigation) 1. 底部菜单栏设计原则: - 易于理解:菜单项应直接反映其对应的功能。 - 空间有限...

    安卓Andriod源码——基于Fragment实现Tab的切换,滑出侧边栏.zip

    在Android应用开发中,Fragment是UI组件的一种,它允许开发者在一个Activity中展示多个相互独立的视图。这个压缩包中的示例代码展示了如何利用Fragment来实现Tab切换以及滑出侧边栏的效果,这对于构建现代Android...

    andriod自定义的Tabs标签菜单(viewpager+fragment)(直接拿来用)

    "andriod自定义的Tabs标签菜单(viewpager+fragment)"是一个很好的实践,它利用了ViewPager和Fragment来实现动态、可滑动的标签页效果。下面将详细讲解这一实现方式。 **一、ViewPager组件** ViewPager是Android ...

    andriod-code.rar

    12. **Android组件间通信**:BroadcastReceiver可以监听系统事件,Fragment用于构建复杂的界面,Loader用于异步加载数据,理解它们的工作原理和使用场景是高级Android开发的一部分。 13. **Gradle构建系统**:...

    android fragment+viewpager(pagerTabStrip)多界面切换

    `Fragment`是Android SDK中的一个核心组件,它代表了Activity的一部分可重用的用户界面。`Fragment`可以独立存在,也可以嵌入到`Activity`中,使得UI设计更加灵活,特别是在平板电脑等大屏幕设备上,可以更好地利用...

    Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】

    定义一个接口,Fragment实现这个接口,Activity也实现这个接口,这样Fragment可以通过调用接口方法来传递信息给Activity。此外,还可以使用setArguments()和getArguments()方法传递简单的数据,或者使用...

    Fragmnet刷新

    在Android应用开发中,Fragment是Activity的一个模块化组件,它允许开发者将屏幕的不同部分独立管理。Fragment的概念引入是为了更好地支持不同屏幕尺寸和配置的变化,使得开发者可以更灵活地设计用户界面。当我们...

    安卓Andriod源码——级联菜单,两级菜单自定义实现提供多种方式PopWindow,Fragment引用.zip

    这个压缩包“安卓Andriod源码——级联菜单,两级菜单自定义实现提供多种方式PopWindow,Fragment引用.zip”提供了实现这一功能的具体源代码,适用于Android应用程序。 首先,让我们了解级联菜单的基本概念。级联...

    安卓Andriod源码——关于Frangment的实现仿网易.zip

    在Android应用开发中,Fragment是Android SDK中的一个重要组件,它被设计用来支持多屏幕布局和在Activity中动态地添加或移除内容。本教程将基于"安卓Andriod源码——关于Frangment的实现仿网易.zip"这个压缩包文件,...

    Android应用开发中Fragment与Activity间通信示例讲解

    此时,Activity不再是直接继承自`Activity`,而是需要继承`android.support.v4.app.FragmentActivity`。这是因为Fragment和Activity在系统中是作为独立的对象存在的,它们之间的交互由Activity的`FragmentManager`来...

    Andriod的一个小程序

    13. **LiveData和ViewModel**: 这是Android Architecture Components的一部分,LiveData是一个观察者模式的实现,用于在Activity或Fragment的生命周期内保持数据。ViewModel则在配置变更时保持数据,避免数据丢失。 ...

    Android Fragment概述及用法

    我们可以将多个Fragment组合到一个Activity中创建一个多面界面,也可以在多个Activity中重用一个Fragment。  Fragment概述  我们可以把Fragment视为模块化的一段Activity,它具有自己的生命周期,接收它自己的事件...

    应用源码之weibo4andriod-2.zip

    在Weibo4Android-2中,我们可以看到如何组织Activity、Fragment、Service等组件,以及它们之间的交互方式。 2. **数据处理**:在Android应用中,数据管理是关键。此项目可能包含了SQLite数据库的使用,用于本地数据...

    安卓Andriod源码——动态添加RadioGroup的RadioButton.zip

    1. **创建RadioGroup**: 首先,你需要在你的Activity或Fragment中创建一个RadioGroup实例。可以通过以下代码实现: ```java RadioGroup radioGroup = new RadioGroup(this); ``` 2. **设置RadioGroup属性**: ...

    安卓Andriod源码——-拍照、打开本地相册.zip

    在安卓(Android)平台上开发应用时,涉及到用户交互的一个常见任务是实现拍照和访问本地相册的功能。这个压缩包文件“安卓Andriod源码——-拍照、打开本地相册.zip”显然包含了实现这两个功能的示例代码。下面将...

    andriod闹钟源代码-IT计算机-毕业设计.zip

    这个“andriod闹钟源代码”是一个适合学生进行毕业设计的学习资源,它提供了Android应用开发的实际案例,帮助初学者理解如何在Android环境中实现一个功能完备的闹钟应用。下面我们将详细探讨这个源代码中涉及的主要...

    安卓Andriod源码——TabActivityDemo.zip

    这个"安卓Andriod源码——TabActivityDemo.zip"应该包含了一个示例项目,演示了如何使用TabActivity创建一个多标签的界面。尽管在最新的Android版本中,TabActivity已经被废弃,但了解它的原理对于理解Android应用的...

Global site tag (gtag.js) - Google Analytics