我正在开发一个应用程序,我希望能够从另一个细节片段转到一个新的细节片段,但是当我点击后退按钮时,我想总是返回到主片段,无论多少我附上了一个新的细节片段。
使用下面的代码我得到了这个效果,但是当我回击时,最后一个细节片段显示为主片段上的叠加层,当我尝试附加新的细节片段时,它显示在主片段的顶部取代它。
我该如何解决这个问题?
if (getSupportFragmentManager().findFragmentByTag(TAG_MASTER).isVisible()) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment, TAG_DETAIL);
transaction.addToBackStack(TAG_MASTER);
transaction.commit();
} else {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment, TAG_DETAIL);
transaction.commit();
}
答案 0 :(得分:1)
在您的活动中覆盖onBackPressed。请记住这是半伪代码
@Override
public void onBackPressed() {
if ("Not on your master fragment") {
// replace R.id.container with your master fragment
} else {
super.onBackPressed();
}
}