好的,我试着理解你的问题。据我了解
你有 Activity A - List Fragment > Detail Fragment。
当您按下 Detail Fragment 上的返回按钮时,您将返回 List Fragment,这就是您所需要的。
但从 List Fragment 再次按返回按钮不应关闭/退出您的应用。
所以这是你需要做的。
像这样将列表片段添加到 MainActivity:
private FragmentManager mFragmentManager;
private FragmentTransaction mFragmentTransaction;
Fragment listFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Listfragment here
listFragment = new ListFragment();
mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.frame, listFragment, "List");
mFragmentTransaction.addToBackStack("List");
mFragmentTransaction.commit(); }
在 List Fragment 中以同样的方式调用 Detail Fragment,例如:
mListview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fragment detailFragment = new DetailFragment();
mFragmentManager = getFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.frame, detailFragment, "Detail");
mFragmentTransaction.addToBackStack("Detail");
mFragmentTransaction.commit();
}
});
在你MainActivity
@Override
public void onBackPressed() {
if(listFragment.isVisible()){
**//Do Nothing - DOES NOT CLOSE THE APP**
}
else{
super.onBackPressed();
}
}
注意:
除非你有充分的理由,否则请不要这样做,因为打破预期的运营模式会对整个平台造成轻微的伤害