



如图所示,左边是五个fragment,点击可以正常切换。
我在书香建行这里加了一个读书fragment,和听书fragment相互切换,但是在看书界面点击左边按钮的时候会没反应,只有切换到听书才可以,这个要怎么加判断呢?以下是切换时的代码:
private void initFragment(int index) {
// 由于是引用了V4包下的Fragment,所以这里的管理器要用getSupportFragmentManager获取
FragmentManager fragmentManager = getSupportFragmentManager();
// 开启事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 隐藏所有Fragment
hideFragment(transaction);
switch (index) {
case R.id.iv_adver://金智惠民
if (adverFragment == null) {
adverFragment = new AdverFragment();
transaction.add(R.id.content, adverFragment);
} else {
transaction.show(adverFragment);
}
break;
case R.id.iv_news://时政新闻
if (newsFragment == null) {
newsFragment = new NewsFragment();
transaction.add(R.id.content, newsFragment);
} else {
transaction.show(newsFragment);
}
break;
case R.id.iv_photo://拍照
if (photoFragment == null) {
photoFragment = new ArPhotoFragment();
transaction.add(R.id.content, photoFragment);
} else {
transaction.show(photoFragment);
}
break;
case R.id.iv_weather://便民查询
if (weatherFragment == null) {
weatherFragment = new WeatherFragment();
transaction.add(R.id.content, weatherFragment);
} else {
transaction.show(weatherFragment);
}
break;
case R.id.iv_write://书香建行
if (ximalayaFragment == null) {
ximalayaFragment = new XimalayaFragment();
transaction.add(R.id.content, ximalayaFragment);
} else {
transaction.show(ximalayaFragment);
}
/* if (writeFragment == null) {
//writeFragment = new XinWriteFragment();
writeFragment = new WriteFragment();
transaction.add(R.id.content, writeFragment);
} else {
transaction.show(writeFragment);
writeFragment.freeMpager();
writeFragment.initBookShelf();
}*/
break;
default:
break;
}
// 提交事务
transaction.commit();
}
private void hideFragment(FragmentTransaction transaction) {
if (adverFragment != null) {
transaction.hide(adverFragment);
}
if (newsFragment != null) {
transaction.hide(newsFragment);
}
if (photoFragment != null) {
transaction.hide(photoFragment);
}
if (weatherFragment != null) {
transaction.hide(weatherFragment);
}
if (ximalayaFragment != null){
transaction.hide(ximalayaFragment);
}
if (writeFragment != null) {
transaction.hide(writeFragment);
}
if (blankFragment != null) {
transaction.hide(blankFragment);
}
}
已经解决了,在新fragment里获取控件,再做一次操作。。
如果只是单纯挡住的话,调整xml布局即可