Fragmeng:Fragment相当UI片段,如果Activity看作一个国家,那么fragment相当于国家的省份。fragment是依托与Activity而存在的;
fragment的静态使用:
创建fragment类:
public class FirstFragment extends Fragment{
//加载布局,初始化数据,添加监事件;
@override
public View onCreatView(LayoutInfalte infalte ,ViewGroup container){
View view = inflater.inflate(R.layout.fragment_edit_name, container);
returnview;
}
}
将Fragment加载到Activity的布局中:
<fragment
<!--设置id在Acitvity进行初始化使用 -->
android:id="@+id/fragment"
<!--用于自定本fragment连接的fragment的类名-->
<!--这个属性也是fragment的一个特殊的属性-->
android:name="com.zhy.zhy_fragments.ContentFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
在Activity中获得Fragment示例
FirsFragment fragment=(FirsFragment)findViewById(R.id.fragment);
在Fragment中获得Activity
Activity activity=getActivity();
Fragment的动态添加:
1.创建fragment实例;
2.获取FragmentManger,在活动中可以直接调用getFragmentManger(),getSupportFragmentManager;
3.开启一个FragmentTranscaction(事务),通过beginTransaction()方法;
4.利用FragmentTranscaction(事务)布局中的碎片进行处理;
5.提交FragmentTranscation事务,调用commit(),方法进提交;
代码示例:
//获得Fragment实例
FirstFragment firstFragment=new FirstFragment();
//获取Fragment管理器
FragmentManger fragmentManger=getFragmentManger();
//获得fragment交换器
FragmentTransaction fragmentTransaction=fragmentManger.beginTransaction();
fragmentTransaction.replace(int id,Fragment firstFragment);
transaction.commit();
方法以及参数的讲解:
fragmentTransaction.replace(int var1,Fragment var2);
参数说明:var1 是将要将Fragment加载到哪个控件中,这个控件的ID;
var2是指将要显示(即将添加到控件中)的Fragment实例;
方法说明:当布局中没有Fragment的时候就会,就会将var2这个fragment添加到布局中。如果布局中已经有了Fragment的时候,会将原有的Fragment移除,并将var2添加到布局中去;
fragmentTransaction.add(intvar1,Fragment var2)
参数说明:var1 是将要将Fragment加载到哪个控件中,这个控件的ID;
var2是指将要显示(即将添加到控件中)的Fragment实例;
方法说明:向Activity中添加fragment;
fragmentTransaction.remove(Fragment var1);
方法说明:从Activity中移出fragment;
fragmentTransaction.hide(Fragment var1);
方法说明:将已经添加到Activity中var1的fragment隐藏;
fragmentTransaction.show(Fragment var1);
方法说明:将已经添加到Activity中的var1显示;
提交事物,实现隐藏,显示,移除的功能;
fragment Transaction.commit();
fragment模拟返回栈;
在需要返回栈的fragment添加的时候添加这段代码
fragmentTransaction.addToBackStack(null);
参数是:null即可;
生命周期:
方发说明:onAttach()--当活动与碎片建立练习的时候调用;
onCreateView()--加载布局的时候调用;
onActivityCreated()---确保与碎片相关联的活动一定已经创建完毕的时候调用;
onDestoryView()-----当与碎片关联的视图被移除的时候调用
onDetach()----当碎片与活动解除关联的时候调用
网友评论