Fragment切换重新与不重新加载界面
2016-07-05 13:45
288 查看
Fragment切换重新或不重新加载界面
在实现开发应用时,有时Fragment切换时界面的信息需要更新,则需要重新加载,否则不需要;下面实现了默认的fragment 、 不重新加载 与 重新加载的方法,只需你自己的fragmeng和 放fragment的布局id;
注:是import android.app.Fragment包的;
如果想换成v4包的请注意其他的包类型统一,并修改:mFm = getSupportFragmentManager();
[java]
view plain
copy
/**
* 设置默认的fragment,即//第一次加载界面;
*/
private void setDefaultFragment(Fragment fm) {
mFm = getFragmentManager();
FragmentTransaction mFragmentTrans = mFm.beginTransaction();
mFragmentTrans.add(R.id.id_addfram, fm).commit();
mContent = fm;
}
private FragmentManager mFm;
private Fragment mContent;
/**
* 修改显示的内容 不会重新加载 *
*/
public void switchContent(Fragment to) {
if (mContent != to) {
FragmentTransaction transaction = mFm.beginTransaction();
if (!to.isAdded()) { // 先判断是否被add过
transaction.hide(mContent).add(R.id.id_addfram, to).commit(); // 隐藏当前的fragment,add下一个到Activity中
} else {
transaction.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个
}
mContent = to;
}
}
/**
* 修改显示的内容 但会重新加载 *
*/
public void switchContent2(Fragment to){
FragmentTransaction transaction = mFm.beginTransaction();
transaction.replace(R.id.id_addfram,to);
//transaction.addToBackStack(null);
transaction.commit();
}
相关文章推荐
- MySQL创建触发器实现统一主机下两个数据库的表同步
- Python Paramiko模块安装和使用
- php反射机制
- 如何把U盘设置为电脑锁
- Eclipse-----Debug Maven依赖Jar包找不到源码
- oracl 自增长序列 和触发器
- 【网络】Linux网络相关配置
- 敏捷BI比传统BI功能强大是否属实?
- java.lang.NoClassDefFoundError: org/activiti/image/ProcessDiagramGenerator
- 如何让应用在应用运行时重启
- 三级联动效果 ,省份,城市,市区
- sn序列号改变导致cts异常中断(案例)
- idea maven package java.lang.OutOfMemoryError 问题解决
- Xamarin.Forms之界面设计原则
- 标识符的存在性
- WebApplication初始化
- Git之分支
- 获取 刚才插入行的 id
- 读书摘要——第三章
- github上总结的python资源列表