通常地 fragment做为宿主activity UI的一部分, 被作为activity整个view hierarchy的一部分被嵌入.<wbr>有2种方法你可以添加一个fragment到activity layout:</wbr>
一、在activity的layout文件中声明fragment
你可以像为View一样, 为fragment指定layout属性(sdk3.0以后).
例子是一个有2个fragment的activity:
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
<wbr><span></span><wbr><span></span>android:orientation=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"horizontal"</span></wbr></wbr>
<wbr><span></span><wbr><span></span>android:layout_width=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"match_parent"</span></wbr></wbr>
<wbr><span></span><wbr><span></span>android:layout_height=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"match_parent"</span>></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><fragment android:name=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"com.example.news.ArticleListFragment"</span></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:id=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"@+id/list"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_weight=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"1"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_width=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"0dp"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_height=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"match_parent"</span><span></span>/></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><fragment android:name=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"com.example.news.ArticleReaderFragment"</span></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:id=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"@+id/viewer"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_weight=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"2"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_width=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"0dp"</span></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span><wbr><span></span>android:layout_height=<span style="color:#0910;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;">"match_parent"</span><span></span>/></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span></span><span style="color:#0091;line-height: 19px; word-break: normal; word-wrap: normal; background-color: inherit;"></LinearLayout></span></wbr>
<fragment> 中的 android:name 属性指定了在layout中实例化的Fragment类.<wbr></wbr>
当系统创建这个activity layout时, 它实例化每一个在layout中指定的fragment,并调用每一个上的onCreateView()方法,来获取每一个fragment的layout. 系统将从fragment返回的 View 直接插入到<fragment>元素所在的地方.<wbr></wbr>
注意: 每一个fragment都需要一个唯一的标识, 如果activity重启,系统可以用来恢复fragment(并且你也可以用来捕获fragment来处理事务,例如移除它.)<wbr></wbr>
有3种方法来为一个fragment提供一个标识:
- 为 android:id 属性提供一个唯一ID.
- 为 android:tag 属性提供一个唯一字符串.
- 如果以上2个你都没有提供, 系统使用容器view的ID.
二、使用FragmentManager将fragment添加到一个已存在的ViewGroup.
当activity运行的任何时候, 都可以将fragment添加到activity layout.只需简单的指定一个需要放置fragment的ViewGroup.为了在你的activity中操作fragment事务(例如添加,移除,或代替一个fragment),必须使用来自 FragmentTransaction 的API.
可以按如下方法,从你的Activity取得一个 FragmentTransaction 的实例:
FragmentManager fragmentManager = getFragmentManager();<wbr></wbr>
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
然后你可以使用 add() 方法添加一个fragment, 指定要添加的fragment, 和要插入的view.
ExampleFragment fragment =newExampleFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
add()的第一个参数是fragment要放入的ViewGroup, 由resource ID指定, 第二个参数是需要添加的fragment.一旦用FragmentTransaction做了改变,为了使改变生效,必须调用commit().
分享到:
相关推荐
以上是关于Android Fragment使用的基本知识和关键点,通过熟练掌握这些,开发者可以更好地构建动态、适应性强的Android应用。在实际项目中,根据需求还可以探索更多高级用法,如Fragment的懒加载、Fragment的通信...
安卓app开发之Android Fragment使用教程.zip
在这个"android fragment使用示例"中,我们可以深入理解Fragment的使用方法和应用场景。 1. **Fragment的基本概念** - Fragment是Activity的一部分,它可以有自己的UI视图和生命周期。Fragment可以独立于Activity...
本教程将深入探讨如何在Android应用中使用Fragment,以及如何进行嵌套使用,特别是在创建底部菜单和顶部菜单的场景下,类似微信和QQ的分页菜单设计。 1. **Fragment的基本使用**: - 创建Fragment:通过继承...
在Android应用开发中,...在实际项目中,熟练掌握Fragment的使用是每个Android开发者必备的技能之一。对于更复杂的使用场景,如Fragment间的通信、动态加载、回退栈管理和保存状态,开发者需要进一步深入学习和实践。
Fragment是Android应用开发中的一个重要组件,它是在API 11(Android 3.0 Honeycomb)引入的,用于支持在大型屏幕如平板...理解并熟练掌握Fragment的使用、生命周期和布局管理,对于开发高质量的Android应用至关重要。
在Android中,我们可以使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期和状态。例如,使用`beginTransaction()`开始一个事务,然后调用`add()`, `replace()`, 或 `remove()`来执行相应的操作...
本资源主要讲解fragment使用中要注意的一些地方,当然,顺带也会有fragment本身的一些使用方法,觉得需要就下吧。Blog在http://blog.csdn.net/wzg_1987/article/details/8836532里面也会有一段主要的代码供参考,...
Android提供了多种方式来实现Fragment的动画效果,包括使用`Transaction`对象以及自定义动画。 1. **使用`FragmentManager`和`FragmentTransaction`**: 在Fragment的切换过程中,我们通常会使用`FragmentManager`...
Fragment的概念是从Android3.0开始引入的,直译为碎片、片段,目的是为不同屏幕大小的设备(手机、平板等)创建灵活动态的UI。诚如其名,你可以把Fragment当作是Activity的模块化组件,它拥有自己的生命周期和UI,接受...
本示例"android fragment超简单使用demo"专注于Fragment的基础使用,旨在帮助开发者快速理解并掌握Fragment的核心概念。 首先,Fragment并不是独立的Activity,而是作为Activity的一部分存在,它可以嵌入到Activity...
Android Fragment的使用。 功能:用一个Activity来管理两个Fragment,并且在其中一个Fragment中,点击按钮,影响到第二个Fragment。Activity中用list来管理Fragment。fragment布局采用垂直排列。
一、Android Fragment 的基础知识介绍 1.1 概述 1.2 范例 二、Android Fragment 示例讲解一 2.1 创建 Fragment 2.2 Fragment 管理 2.3 Fragment 与 Activity 通讯 2.4 Fragment 示例 三、Android ...
简单实用的Fragment框架,适用于商城,影音,即时通讯等项目!经测试可用!下载直接运行,如有问题请联系扣扣2691608900!!!
Fragment是Android应用开发中的一个重要组件,自Android 3.0(API级别11)引入,它的出现是为了在大屏幕设备如平板电脑上更好地管理和展示内容。Fragment可以看作是Activity的一部分,可以在同一个Activity中组合多...
"Android Fragment的简单使用(静态)"这个主题将介绍如何在Activity中静态地添加和管理两个Fragment,使得它们平均分配Activity的显示空间。 首先,让我们了解Fragment的基本概念。Fragment是一个可以包含UI元素的...
Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并没有提供onTouchEvent方法来监听触摸事件。因此,我们需要自己实现触摸事件的分发。 在Fragment中监听触摸事件可以使用接口来实现。首先...
在Android应用开发中,Fragment是UI组件的重要组成部分,它允许我们构建可动态组合的应用界面,尤其是在平板电脑等大屏幕设备上。本文将深入探讨Fragment的管理以及如何解决Fragment重叠问题。 首先,Fragment是在...
在Android中,我们通常使用FragmentManager和FragmentTransaction来管理和操作Fragment。通过调用FragmentTransaction的`add()`, `replace()`, `remove()`等方法,我们可以动态地在Activity中添加、替换或移除...