android - 为什么我需要按两次后退按钮才能在第一次关闭 fragment ?

标签 android android-fragments android-activity android-navigationview appcompatactivity

我有 Base Activity,包括带有 2 个 menu itemsNavigationView。开始时,它会加载 Home fragment ,其中包含 background image。每个加载特定的 fragment 。当我选择 Terms & Conditions 菜单项时,它会加载 T&C fragment 并且当我按下后退按钮时它会简单地杀死它。

但是,当我选择“关于我们”菜单项​​时,它会加载“关于我们” fragment ,但我需要按 BACK 按钮 两次才能终止它。我需要知道为什么会这样?

AppBaseActivity中的部分代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        HomeFragment homeFragment = new HomeFragment();
        fragmentTransaction.add(R.id.body_container, homeFragment, "");
        fragmentTransaction.commit();
}

    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        navigationView.getMenu().findItem(item.getItemId()).setChecked(true);
switch (item.getItemId()) {
            case R.id.nav_terms :
                fragmentTransaction = fragmentManager.beginTransaction();
                TCFragment tcFragment = new TCFragment();
                fragmentTransaction.replace(R.id.body_container, tcFragment, "");
                fragmentTransaction.commit();
                break;

            case R.id.nav_about_us :
                fragmentTransaction = fragmentManager.beginTransaction();
                AboutUsFragment aboutUsFragment = new AboutUsFragment();
                fragmentTransaction.replace(R.id.body_container, aboutUsFragment, "");
                fragmentTransaction.commit();
                break;
}

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
}

All fragments 仅通过膨胀受尊重的 xml 简单地覆盖了 onCreateView()。两个 fragment 中都没有编写代码。

最佳答案

如果需要,您可以停止返回硬件导航。

简单地使用 onBackPressed() 没有 super.onBackPressed()

@Override
public void onBackPressed() {

}

关于android - 为什么我需要按两次后退按钮才能在第一次关闭 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460249/

相关文章:

android - 每种构建类型的不同依赖集

android - 计算android屏幕尺寸?

Activity 类之外的 Android 上下文

Android - 在 ListFragment 中使用 getActivity 访问上下文返回 null

java - 将值从 Activity 传递到 Android 中的下一个 Activity

android - 添加/删除方法在 onCreate 中起作用,但在 onPageSelected 中不起作用

android - 从我自己的网站而不是市场安装(和更新)android 应用程序

Android非UI Fragment使用

android - 为什么 fragment 类应该公开?

java - 在 OnCreateView 调用之外动态添加 View 到 fragment