在BottomAppBar中,导航抽屉项目单击不起作用

时间:2018-11-12 07:17:20

标签: android android-studio

我已经在我的应用程序中实现了BottomAppBar。 紧随本文Implementing BottomAppBar menu and Navigation drawer Control

一切正常,但问题是导航抽屉项没有显示Toast或其他内容。总之,它不会获得任何点击。 这是我的源代码Github

我还在onNavigationItemSelectedListener中尝试了Log.d,但它也没有向Logcat显示任何内容。

3 个答案:

答案 0 :(得分:0)

您可以看以下示例。希望它对您有用:

Navigation Drawer and BottomBar example

答案 1 :(得分:0)

尝试手动设置MenuItem ClickListener,看看它是否对您有用。

BottomAppBar bar = (BottomAppBar) findViewById(R.id.bar);

bar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem item) {
        // Handle actions based on the menu item
        return true;
    }
});

答案 2 :(得分:0)

NavigationView属于BottomNavigationDrawerFragment, 您应该在下面的片段BottomNavigationDrawerFragment类中进行操作:

navigationView.setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {

                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {

                        switch (menuItem.getItemId()) {
                        case R.id.navigation_item1:
                            ...
                            break;
                        case R.id.navigation_item2:
                            ...
                            break;
                        case R.id.navigation_item3:
                            ...
                            break;
                        default:
                            ...
                            break;
                        return true;
                    }
                });

您还需要分片获取navigationView

已编辑

片段中:

@Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.your_fragment_layout,
                container, false);
        NavigationView  navigationView = (NavigationView )view.findViewById(.....);
        navigationView.setNavigationItemSelectedListener(
        ....
        return view;
    }