Android 片段替换问题
我在实现导航抽屉时遇到问题 问题是布局重叠,但只有当我让应用程序在后台运行很长一段时间(活动停止后我才停止)时才会发生这种情况 这是我用来更改片段的代码。我不是在用onStop方法做任何事情 (我应该做点什么吗?)Android 片段替换问题,android,android-fragments,Android,Android Fragments,我在实现导航抽屉时遇到问题 问题是布局重叠,但只有当我让应用程序在后台运行很长一段时间(活动停止后我才停止)时才会发生这种情况 这是我用来更改片段的代码。我不是在用onStop方法做任何事情 (我应该做点什么吗?) 谢谢。有两种解决方案,您可以尝试克服重叠片段的问题 尝试(1)为xml文件中的片段设置背景色 如果不起作用, 尝试(2)通过编写自己的代码来修复此问题,在提交新的片段之前删除任何现有片段 例如: fragmentManager = getFragmentManager();
谢谢。有两种解决方案,您可以尝试克服重叠片段的问题 尝试(1)为xml文件中的片段设置背景色 如果不起作用, 尝试(2)通过编写自己的代码来修复此问题,在提交新的片段之前删除任何现有片段 例如:
fragmentManager = getFragmentManager();
ft = fragmentManager.beginTransaction();
mbFragment = new SettingsManageBooksFragment();
ft.replace(R.id.setting_detail_container2, mbFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.manage_my_books);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButtonSettingsManageBooks:
if (mPurchaseHistory == true) {
ft.remove(phFragment);
Log.d(TAG, "REMOVING PURCHASE HISTORY FRAG");
} else if (mAudio == true) {
ft.remove(aFragment);
Log.d(TAG, "REMOVING AUDIO FRAG");
} else if (mRestore == true) {
ft.remove(rFragment);
Log.d(TAG, "REMOVING RESTORE FRAG");
} else if (mCopyright == true) {
ft.remove(cFragment);
Log.d(TAG, "REMOVING COPYRIGHT FRAG");
} else if (mAbout == true) {
ft.remove(abFragment);
Log.d(TAG, "REMOVING ABOUT FRAG");
}
ft = fragmentManager.beginTransaction();
mbFragment = new SettingsManageBooksFragment();
ft.replace(R.id.setting_detail_container2, mbFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.manage_my_books);
mManageBooks = true;
mPurchaseHistory = false;
mAudio = false;
mRestore = false;
mCopyright = false;
mAbout = false;
break;
希望这会有帮助
如果您使用第一种解决方案,您可能还会遇到新片段后面的片段仍然可以单击的问题。如果发生这种情况,只需使新片段的父视图可单击即可
fragmentManager = getFragmentManager();
ft = fragmentManager.beginTransaction();
mbFragment = new SettingsManageBooksFragment();
ft.replace(R.id.setting_detail_container2, mbFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.manage_my_books);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButtonSettingsManageBooks:
if (mPurchaseHistory == true) {
ft.remove(phFragment);
Log.d(TAG, "REMOVING PURCHASE HISTORY FRAG");
} else if (mAudio == true) {
ft.remove(aFragment);
Log.d(TAG, "REMOVING AUDIO FRAG");
} else if (mRestore == true) {
ft.remove(rFragment);
Log.d(TAG, "REMOVING RESTORE FRAG");
} else if (mCopyright == true) {
ft.remove(cFragment);
Log.d(TAG, "REMOVING COPYRIGHT FRAG");
} else if (mAbout == true) {
ft.remove(abFragment);
Log.d(TAG, "REMOVING ABOUT FRAG");
}
ft = fragmentManager.beginTransaction();
mbFragment = new SettingsManageBooksFragment();
ft.replace(R.id.setting_detail_container2, mbFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.manage_my_books);
mManageBooks = true;
mPurchaseHistory = false;
mAudio = false;
mRestore = false;
mCopyright = false;
mAbout = false;
break;