gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:28:06 26 4
gpt4 key购买 nike

我有 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com