片段导航
Fragment navigation
我正在创建一个应用程序,其中包含一个主要 activity 和片段。
我正在尝试使用 mainActivity 上的这段代码来控制 backPress 会发生什么:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() == 0) {
this.finish();
} else {
getFragmentManager().popBackStack();
}
}
我的应用程序的结构是这样的:
MainAtivity --> Fragment1 --> Fragment2 --> Fragment2 ...(返回按应该让我到 Fragment1)
当我创建 Fragment2 时,我将 Fragment1 添加到 backStack,当按下返回时,我仍然在后台看到 Fragment2。
我怎样才能到达 Fragment1 并且只显示 Fragment1?
我不确定你是如何提交你的片段的。但这会有所帮助。
提交时:
// Initialize a Fragment Transaction.
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Record all steps for the transaction.
ft.replace(R.id.home_frame_layout_for_fragments, baseFragments[i],
// Add the transaction to backStack with tag of first added fragment
ft.addToBackStack(baseFragments[0].getTagText());
// Commit the transaction.
ft.commit();
删除时:
final FragmentManager fragmentManager = getSupportFragmentManager();
while (fragmentManager.getBackStackEntryCount() != 0) {
fragmentManager.popBackStackImmediate();
}
这可能有效!!!
编码愉快!!!!
我正在创建一个应用程序,其中包含一个主要 activity 和片段。 我正在尝试使用 mainActivity 上的这段代码来控制 backPress 会发生什么:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() == 0) {
this.finish();
} else {
getFragmentManager().popBackStack();
}
}
我的应用程序的结构是这样的:
MainAtivity --> Fragment1 --> Fragment2 --> Fragment2 ...(返回按应该让我到 Fragment1)
当我创建 Fragment2 时,我将 Fragment1 添加到 backStack,当按下返回时,我仍然在后台看到 Fragment2。
我怎样才能到达 Fragment1 并且只显示 Fragment1?
我不确定你是如何提交你的片段的。但这会有所帮助。
提交时:
// Initialize a Fragment Transaction.
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Record all steps for the transaction.
ft.replace(R.id.home_frame_layout_for_fragments, baseFragments[i],
// Add the transaction to backStack with tag of first added fragment
ft.addToBackStack(baseFragments[0].getTagText());
// Commit the transaction.
ft.commit();
删除时:
final FragmentManager fragmentManager = getSupportFragmentManager();
while (fragmentManager.getBackStackEntryCount() != 0) {
fragmentManager.popBackStackImmediate();
}
这可能有效!!!
编码愉快!!!!