В BottomAppBar щелчок элемента в навигационном блоке не работает - PullRequest
0 голосов
/ 12 ноября 2018

Я реализовал BottomAppBar в моем приложении. После этой статьи Реализация меню BottomAppBar и элемента управления «Панель навигации»

Все работает просто отлично, но проблема в том, что элементы ящика навигации не отображают тост или что-то еще. Одним словом, он не получает ни одного клика. Вот мой исходный код Github

Я также попробовал Log.d в onNavigationItemSelectedListener, но он также ничего не показывает Logcat.

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

Попробуйте установить 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;
    }
});
0 голосов
/ 12 ноября 2018

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;
    }
0 голосов
/ 12 ноября 2018

Вы можете взглянуть на следующий пример. Надеюсь, это сработает для вас:

Пример "Навигационный ящик" и "Нижняя панель"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...