Fragment android碎片化管理
2015年12月29日
静态使用方式:
简单使用方式:
在布局文件(XML) 中 加入fragment标签 设置宽 高 name
在src文件夹中 新建一个Class文件, 继承自 Fragment (app.fragment)
重写生命周期方法 :最少重写一个 OncreateView();
/**
* 与Activity 绑定
*/
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
logI("onAttach");
}
// Activity 开始执行Oncerat方法
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
logI("onCreate");
}
//创建Fragment视图 通过布局填充器
public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, Bundle savedInstanceState) {
logI("onCreateView");
return inflater.inflate(R.layout.fragment1,container, false);
}
//绑定的Activity 的 oncreate方法 执行完毕
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
logI("onActivityCreated");
tv = (TextView) getView().findViewById(R.id.fragment1_tv);
tv.setText("我在运行时就被改变了");
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
logI("onStart");
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
logI("onResume");
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
logI("onPause");
}
@Override
public void onStop() {
// TODO Auto-generated method stub
super.onStop();
logI("onStop");
}
//销毁视图
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
super.onDestroyView();
logI("onDestroyView");
}
//准备销毁自己
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
logI("onDestroy");
}
//与Activity 解除绑定
@Override
public void onDetach() {
// TODO Auto-generated method stub
super.onDetach();
logI("onDetach");
}
动态使用方式:
步骤:1. 在布局文件中 加入FrameLayout
给Fragment一个空间, 用来动态的放入Fragment
2. 在JAVA代码中 通过new 创建一个Fragment的对象
3. 开启Fragment事物
1. 在android3.0以上(使用app包下的Fragment)通过getFragmentManager().beginTransaction()开启Fragment事务
2. 在android3.0以下(使用v4包底下的fragment), 需要当前Activity继承自FragmentActivity , 然后调用getSupportFragmentManager().beginTransaction()开启Fragment事物;
4. 提交事物 beginTransaction.commit();
事物 常用方法:
//add方法:绑定一个fragment到framelayout上
两个参数 : 1.需要把参数二fragment放入哪个位置 , 2.fragment对象
.add(R.id.act_main_framelayout, frags.get(0))
remove 方法:从一个framelayout上移除一个fragment
参数一: 要移除的fragment对象
beginTransaction.remove(frags.get(0));
hede方法: 隐藏一个fragment
参数一: 要隐藏的fragment对象
beginTransaction.hide(frags.get(0));
show方法: 显示一个之前隐藏的fragment对象
参数一: 要显示的fragment
beginTransaction.show(frags.get(0));
addToBackStack方法: 将当前fragment加入回退栈
addToBackStack(null);
最常用方法:
replace(R.id.act_main_framelayout, frags.get(0));
此方法 是remove与add方法的结合 ,