【问题标题】:Make a perfecttly Navigation with the Bottombar and Fragments使用底部栏和片段进行完美导航
【发布时间】:2017-06-16 15:54:00
【问题描述】:

我有一个底栏。当您从那里单击一个项目时,一个片段将填充底部栏和屏幕顶部之间留下的空间。当您单击一个项目时,此代码将运行:

case R.id.navigation_search:
                    Fragment_search fragment_search = new Fragment_search();
                    fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.fragment_container, fragment_search);
                    fragmentTransaction.addToBackStack(null);
                    fragmentTransaction.commit();
                    return true;   

你看我把 Fragment 添加到 BackStack。一切正常,但是当用户从 Android 中单击后退按钮时,只会加载前一个片段,而底部栏将选择片段具有的项目。那么如何在调用 Fragment 时选择适当的 Item 呢?有类似 onFragmentChange 的东西吗?以及如何从底部栏中选择项目?

提前致谢。

【问题讨论】:

    标签: android android-fragments navigation bottombar


    【解决方案1】:

    如果你想让后退按钮改变底栏,你可以拦截它并告诉它选择哪个项目。

    @Override
    public void onBackPressed()
    {
        super.onBackPressed();
    
        // Figure out which fragment is now showing and select the item in the bottom bar.
    }
    

    如果您有操作栏/工具栏,您可能还需要拦截后退箭头。

    【讨论】:

    • 是的,我也有这个想法,但是如何获取当前的 Fragment?
    • 您应该能够执行以下操作:Fragment currentFragment = getFragmentManager().findFragmentById(R.id.fragment_container);Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container); 然后通过 instanceof 查看显示的片段以确定要选择的项目。if (currentFragment instanceof YourFragment) { Log.v(TAG, "your Fragment is Visible"); }
    • 但现在不同了。如何从底部栏中选择项目?
    • 应该类似于您的 BottomNavigationView 上的 setSelectedItemId()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多