通常地 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使用示例
安卓app开发之Android Fragment使用教程.zip
android fragment 使用以及嵌套使用 底部菜单和顶部菜单,类似微信和QQ的分页菜单
android fragment使用示例 ,很好的学习示例,希望帮到学习中的人。
Android之Fragment的基本使用 详细见博客:http://blog.csdn.net/whitley_gong/article/details/50098729
Android Fragment切换动画
本资源主要讲解fragment使用中要注意的一些地方,当然,顺带也会有fragment本身的一些使用方法,觉得需要就下吧。Blog在http://blog.csdn.net/wzg_1987/article/details/8836532里面也会有一段主要的代码供参考,...
Android fragment切换动画
fragment基本使用、生命周期、横屏竖屏显示不同布局
一个android Fragment使用的简单的Demo
Fragment的概念是从Android3.0开始引入的,直译为碎片、片段,目的是为不同屏幕大小的设备(手机、平板等)创建灵活动态的UI。诚如其名,你可以把Fragment当作是Activity的模块化组件,它拥有自己的生命周期和UI,接受...
Fragment是Android honeycomb 3.0新增的概念,在如何使用Android Fragment中做了关于Fragment的详细介绍。本文则主要是通过实例的方式让大家更直观的了解Fragment的使用方法。 首先贴上实例的运行效果截图: ...
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!!!
android fragment超简单使用demo,只关于fragment,没有其他冗余代码
android fragment demo 源码,切换 android fragment demo 源码,切换
本文主要供学习使用,主要讲解点击不同按钮之后,相应...所以这篇文章是写的比较简单的一个实例,目的就是使用最新的Fragment来实现这种切换效果,希望初学者能够完全理解其中的思路。为以后更复杂的开发打好基础。
一、Android Fragment 的基础知识介绍 1.1 概述 1.2 范例 二、Android Fragment示例讲解一 2.1 创建Fragment 2.2 Fragment 管理 2.3 Fragment 与Activity 通讯 2.4 Fragment 示例 三、Android Fragment示例讲解...