我正在使用本教程来实现 facebook 登录等。
我在其中添加了新 fragment 以显示 friend 列表。现在,当我在新添加的 fragment 上按下后退按钮时,它会将我带到 SPLASH fragment ,我希望操作栏上的后退按钮具有相同的行为。意味着当我在我的新 fragment 上时,它会在操作栏上显示一个后退按钮。然后按下那个后退按钮让我回到 SPLASH 屏幕。
private void showFragment(int fragmentIndex, boolean addToBackStack) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
for (int i = 0; i < fragments.length; i++) {
if (i == fragmentIndex) {
transaction.show(fragments[i]);
} else {
transaction.hide(fragments[i]);
}
}
if (addToBackStack) {
transaction.addToBackStack(null);
}
transaction.commit();
}
最佳答案
您可以通过两种方式做到这一点:
1。在你的 fragment 中
@Override
public void onDetach()
{
super.onDetach();
PUT YOUR CODE HERE
}
这将在 fragment 完成时调用。
2。只需在 fragment 之间转换时添加 addToBackStack
,如下所示:
fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).addToBackStack("tag").commit();
如果你写 addToBackStack(null) ,它会自己处理,但如果你给一个标签,你应该手动处理。
已编辑:
用于交易
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
Fragment scheduleFragment = new ScheduleFragment();
fragmentTransaction.replace(R.id.content_container, scheduleFragment, "scheduleFragment");
fragmentTransaction.addToBackStack("scheduleFragment");
fragmentTransaction.commit();
@Yawar actionbar 仅在 Activity 中,这将添加到 Activity 中,当您按下 actionbar 主页按钮时,它将被调用 -->
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
关于android - 在 android fragment Activity 中实现后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25153364/