android - 如果该 fragment 已打开,如何防止从抽屉导航中打开该 fragment

标签 android android-studio android-fragments navigation-drawer

如果 fragment 已经打开,如何防止从抽屉导航中打开 fragment ,当 fragment 打开并单击 NavigationDrawer 项目时, fragment 会再次重新创建,那么如何检查 fragment 是否已经打开?

 public boolean onNavigationItemSelected(MenuItem item) {
    int id = item.getItemId();
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

    if (id == R.id.fragmentA) {
         {   FragmentA fragment = new FragmentA();
             transaction.add(R.id.main_screen, fragment1, "MainFrag").addToBackStack(null);
         }

    } else if (id == R.id.fragmentB) {
        FragmentB fragment = new FragmentB();
        transaction.add(R.id.main_screen, fragment).addToBackStack(null);

    } else if (id == R.id.fragmentC) {
        FragmentC fragment = new FragmentC();
        transaction.replace(R.id.main_screen, fragment).addToBackStack(null);

    }

最佳答案

我是这样解决的:

public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();

    Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
    if (id == R.id.n_1 && !(f instanceof MainFragment)) {
        MainFragment fragment = new MainFragment();
        android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.fragment_container, fragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    } }

关于android - 如果该 fragment 已打开,如何防止从抽屉导航中打开该 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933262/

相关文章:

Android Jetpack Navigation - 如何从抽屉菜单项导航到嵌套导航图

android - 转到 SMS Pro 覆盖 android.provider.Telephony.SMS_RECEIVED

android - 获取具有签名保护级别的安卓权限

android-studio - 如何在Android Studio中播放声音的同时记录声音?

android - fragment 选项卡中的 fragment

java - 在 fragment 中获取结果的问题

android - 在状态栏中实现交互式通知(Android)

android - 打包可穿戴应用

java - 如何在 Android Studio 中添加链接源文件夹?

java - 在 Android 上从 sdk 22 更新到 23 后出现 FragmentManager 错误