Android后退按钮和片段活动 [英] Android back button and fragment activity

查看:71
本文介绍了Android后退按钮和片段活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用片段的活动,当该活动首次创建时,它会显示第一个片段,该片段未添加到后退堆栈中,因为当用户按下时我不想有一个空的活动.

I have an activity which uses fragments, when the activity is first created, it displays a first fragment which is not added to back stack cause I don't want to have an empty activity when user presses back.

此后加载的片段将添加到堆栈中.

The fragments loaded after that are added to back stack.

所以我有我想要的行为,除了:用户可以打开片段并按回去以返回到上一个片段,直到到达第一个片段为止,因为如果此时按回去,则活动被关闭,我不要.

So I have the behavior I want, except: user can open fragments and press back to go back to the previous fragment, up until they reach the first fragment because if they press back at this time, the activity is closed, which I don't want.

所以我想知道一个很好的解决方案,防止仅在显示第一个片段时才按下后退按钮.

So I'd like to know a good solution to prevent back button pressed but only when the first fragment is displayed.

推荐答案

从活动中调用新片段时,添加.addToBackStack(null).

FragmentTransaction mFragmentTransaction = getFragmentManager()
                    .beginTransaction();
        ....
        mFragmentTransaction.addToBackStack(null);

-将onBackPressed()添加到您的活动中

-Add onBackPressed() to your activity

   @Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() == 0) {
        this.finish();
    } 
else {
        getFragmentManager().popBackStack();
    }
}

这篇关于Android后退按钮和片段活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆