2017-06-16 36 views
0

我有一个Bottombar。当你从那里点击一个物品时,一个碎片将填充Bottombar和屏幕顶部之间的空间。当你点击一个物品时,这个代码将被运行:做一个完美的导航与Bottombar和片段

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; 

你看到我添加碎片到BackStack。一切工作正常,但是当用户点击Android的后退按钮时,只有先前的片段才会加载,Bottombar将选择片段所具有的项目。那么如何做到这一点,当一个片段被称为适当的项目将被选中?有没有像onFragmentChange?以及如何从Bottombar中选择物品?

在此先感谢。

回答

1

如果您想要后退按钮更改底部栏,您可以拦截它并告诉它要选择哪个项目。

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 

    // Figure out which fragment is now showing and select the item in the bottom bar. 
} 

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

+0

是的,我也有过这个想法,但是如何获得当前的碎片? – user7938448

+0

你应该能够做这样的事情: '''片段currentFragment = getFragmentManager()findFragmentById(R.id.fragment_container);''' 或 '''片段currentFragment = getSupportFragmentManager( ).findFragmentById(R.id.fragment_container);''' 然后查看哪些片段经由的instanceof示出,以确定选择哪个项目, '''如果(currentFragment的instanceof YourFragment){ Log.v。 (TAG,“你的片段是可见的”); }''' –

+0

但现在是不同的部分。如何从Bottombar中选择物品? – user7938448