#
Android3.0开始引入这个新特性。主要用于实现一个多任务的界面。
fragement是activity的子界面,是运行在activity里面的。
# mainactivity 中的布局控件 使用帧布局
1
2
3
4
5
|
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:id=
"@+id/fl_container"
>
</FrameLayout>
|
# 注意:继承fragment 要求最低版本是11 也就是3.0 fragment刚开始是为平板准备的,现在用的也越来越多
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class Fragment01 extends Fragment {
/**
* 初始化fragment的界面 加载fragment的布局文件,显示出来
* inflater 布局的填充器,是用来加载布局文件的
* container显示fragment的父级控件
* savedInstanceState baocunfragment的状态
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// return super.onCreateView(inflater, container, savedInstanceState);
// getActivity() 是得到fragment所运行在的activity对象
// resource fragment对应的布局文件资源ID
// root fragment界面显示的父级控件
View view = View.inflate(getActivity(), R.layout.f01,
null
);
// 返回view表示把view显示在当前的activity界面上,不返回就不显示
return
view;
}
}
|
#fragment 的显示步骤
步骤:
1.创建一个fragment的类,继承了父类Fragment;
2.创建fragment的布局文件;
3.在代码中显示fragment的子界面;
1.在fragment的onCreateView方法中,加载布局文件,显示出来;
2.在activity中,创建fragment对象;
3.创建fragment管理器;
4.通过fragment管理器得到fragment事务;
5.调用发ragment事务的方法,显示fragment子界面;
6.提交fragment事务;
代码:
1
2
3
4
5
6
7
8
9
10
|
// 1.创建fragment01对象
f01 =
new
Fragment01();
// 2.得到系统的提供的fragmentManager
fm =
this
.getFragmentManager();
// 3.得到fragment的事务,他可以保证多个fragment要么同时显示成功,要么同时显示失败
FragmentTransaction transaction = fm.beginTransaction();
// 4.把f01的界面显示在activity中
transaction.replace(R.id.fl_container, f01);
// 5.提交fragment的事务,把界面显出来
transaction.commit();
|
#fragment 向下兼容问题
android-support-v4.jar:是为了让高版本的api能够向下兼容,
v4就表示向下兼容到api级别为4的版本.
修改的步骤:
1.在Fragment类中,继承support-v4中的Fragment;
2.在activity中,让activity继承support-v4中的FragmentActivity;
3.在方法中,把所有与fragment相关api都是用support-v4中的api;
1
2
3
4
5
6
|
**1. android.support.v4.app.Fragment
**2. public class MainActivity extends FragmentActivity{}
****android.support.v4.app.FragmentActivity;
**3.android.support.v4.app.FragmentManager;
****
// 得到系统的提供的fragmentManager fm = this.getSupportFragmentManager();
android.support.v4.app.FragmentTransaction
|