FragmentTransaction实现Fragment转换
来源:互联网 发布:数据恢复培训 编辑:程序博客网 时间:2024/05/02 04:18
用的是v4包,所以获取用 getSupportFragmentManager
1、定义FragmentTransaction和Fragment
private FragmentTransaction fragmentTransaction;private Fragment indexFragment,msgFragment,meFragment;
其中IndexFragment要extends Fragment
并且加上这句代码:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_index, container, false); }
因为这个例子是一个Av\ctivity多个Fragment,所以在Fragment中要定义一个接口
public interface OnFragmentInteractionListener { //实现不同Fragment之间的通信 // TODO: Update argument type and name public void onFragmentInteraction(Uri uri); }
在onAttach方法中添加:
@Override public void onAttach(Activity activity) { super.onAttach(activity); try { //新建的Fragment要被一个activity使用必须要继承一个接口OnFragmentInteractionListener mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } }
2、初始化事务,R.id.fi_content为:需要显示的地址,直接add,最后要提交事务
fragmentTransaction = getSupportFragmentManager().beginTransaction(); hideall(); switch (id){ case R.id.one: if(indexFragment==null){ indexFragment = IndexFragment.newInstance(); fragmentTransaction.add(R.id.fl_content,indexFragment); }else{ fragmentTransaction.show(indexFragment); } break; case R.id.two: if(msgFragment==null){ msgFragment = MsgFragment.newInstance(); fragmentTransaction.add(R.id.fl_content,msgFragment); }else{ fragmentTransaction.show(msgFragment); } break; case R.id.three: if(meFragment==null){ meFragment = MeFragment.newInstance(); fragmentTransaction.add(R.id.fl_content,meFragment); }else{ fragmentTransaction.show(meFragment); } break; } fragmentTransaction.commit();3、
void hideall(){ //初始化各个Fragment,为空 if(indexFragment!=null){ fragmentTransaction.hide(indexFragment); } if(msgFragment!=null){ fragmentTransaction.hide(msgFragment); } if(meFragment!=null){ fragmentTransaction.hide(meFragment); } }
0 0
- FragmentTransaction实现Fragment转换
- FragmentTransaction 管理Fragment
- Fragment FragmentManager FragmentTransaction 详解
- Fragment FragmentManager FragmentTransaction 详解
- fragmentTransaction与fragment生命周期
- Fragment,FragmentManager, FragmentTransaction详解
- 方法 FragmentTransaction.add(Fragment,String)不适用 (参数不匹配; int无法转换)
- 【Fragment】FragmentManager和FragmentTransaction使用
- Fragment使用(二),FragmentTransaction管理Fragment
- FragmentTransaction与Fragment生命周期的关系
- FragmentTransaction管理 Activity中 fragment的替换
- FragmentTransaction与Fragment生命周期的关系
- FragmentTransaction与Fragment生命周期的关系
- FragmentTransaction与Fragment生命周期的关系
- FragmentTransaction管理的Fragment生命周期状态
- FragmentTransaction与Fragment生命周期的关系
- Viewpager和FragmentTransaction、Fragment生命周期的关系
- Android Fragment切换解决方案之FragmentTransaction
- CALayer
- Ajax(二) — Ajax初步 : $.post 方法与 $.ajax 方法
- openstack官方docker介绍
- android Intent
- android系统触摸屏虚拟按键
- FragmentTransaction实现Fragment转换
- 黑马程序员--Java面向对象
- mongodb初学-常用基本命令
- Redis介绍及常用命令
- 【资源】 Android本地常用资源大全
- Android中HandlerThread的使用及源码解析
- BDFeatureMatch_yalmip_vlfeat
- MFC框体添加菜单栏工具栏状态栏
- Html之网页的定时跳转和定时刷新