接上一篇的博文:Android fragment 切换加载数据卡顿问题,想到的办法就是把切换之前的fragmenthide隐藏起来,就可以解决卡顿的问题,不用重新new一个fragment。由于左侧悬浮菜单有差不多10多个菜单,如果每一个菜单切换的时候,都要隐藏其余所有的菜单,那就会导致代码十分的臃肿,以前隐藏的代码是这样的:
/*if (!openPositionFragment.isAdded()) { // 先判断是否被add过
transaction.hide(priceFragment)
.add(R.id.fragment_container, openPositionFragment)
.commit(); // 隐藏当前的fragment,add下一个到Activity中
titleView.setText(openPositionFragment.getFragmentTitle());
} else {
transaction.hide(priceFragment).show(openPositionFragment)
.commit(); // 隐藏当前的fragment,显示下一个
titleView.setText(openPositionFragment.getFragmentTitle());
}*/
每一个菜单按钮下的点击事件,都要写一段这样的代码,而且局限是只能隐藏一个,导致切换的时候有重叠问题,无法正确显示。
解决的方案是:
先隐藏所有的fragment,然后进入点击事件,如果该fragment已经实例化,那就show就好,如果没有还未实例化