Android 管理碎片活动中的堆栈
我是android新手。我使用“FragmentActivity”来实现选项卡栏控制。当我从一个碎片中推出另一个碎片时,我面临着问题。当我更改选项卡或尝试返回到上一个片段时,这种行为很奇怪。任何人都可以提供一些可靠的代码来正确管理堆栈。用于在片段之间转换Android 管理碎片活动中的堆栈,android,android-layout,android-intent,Android,Android Layout,Android Intent,我是android新手。我使用“FragmentActivity”来实现选项卡栏控制。当我从一个碎片中推出另一个碎片时,我面临着问题。当我更改选项卡或尝试返回到上一个片段时,这种行为很奇怪。任何人都可以提供一些可靠的代码来正确管理堆栈。用于在片段之间转换 Fragment frag; FragmentTransaction transaction; frag = new Fragment1(); transaction = getSupportFragmentManager().beginTr
Fragment frag;
FragmentTransaction transaction;
frag = new Fragment1();
transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.detailFragment, frag);
transaction.commit();
重写onKeyDown方法,并在每次按下后退按钮时删除当前片段
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (getSupportFragmentManager().getBackStackEntryCount() == 0)
{
this.finish();
return false;
}
else
{
getSupportFragmentManager().popBackStack();
removeCurrentFragment();
return false;
}
}
return super.onKeyDown(keyCode, event);
}
public void removeCurrentFragment()
{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment currentFrag = getSupportFragmentManager().findFragmentById(R.id.detailFragment);
String fragName = "NONE";
if (currentFrag!=null)
fragName = currentFrag.getClass().getSimpleName();
if (currentFrag != null)
transaction.remove(currentFrag);
transaction.commit();
}
这是我的片段活动布局XML。告诉我应该写什么而不是“R.id.detailFragment”,我只是提到id来得到答案。提前谢谢。我仍然面临同样的问题。tab1单击->片段1->细节1 tab2单击->片段2->细节2然后tab1单击->细节2显示tab1再次单击->片段1显示