Нижняя навигация должна быть нажата 2 раза перед выполнением задачи - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть нижняя панель навигации, я не знаю почему, но мне нужно щелкнуть ее 2 раза перед выполнением задачи.

Это xml для нижней навигации

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:itemBackground="@color/colorPrimary"
    app:itemIconTint="@color/white"
    app:itemTextColor="@color/white"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    android:focusableInTouchMode="true"
    app:menu="@menu/bottom_navigation_admin" />

Вот как я называю это на активности

private void setBottomNavigation() {
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation_view);
    bottomNavigationView.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
        @Override
        public void onNavigationItemReselected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                case R.id.navigation_override :
                    fragment = new OverrideFragment();
                    fragmentManager.beginTransaction().replace(R.id.fragment_layout, fragment).commit();
                    break;
                case R.id.navigation_user:
                    fragment = new UserListFragment();
                    fragmentManager.beginTransaction().replace(R.id.fragment_layout, fragment).commit();
                    break;
                case R.id.navigation_log_out:
                    CustomDialog customDialog = new CustomDialog(AdminBoardActivity.this);
                    customDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                    customDialog.show();
                    break;
            }
        }
    });
}

Ответы [ 3 ]

2 голосов
/ 24 февраля 2020

Вы используете

bottomNavigationView.setOnNavigationItemReselectedListener вместо
bottomNavigationView.setOnNavigationItemSelectedListener

не повторно выбран только выбранный;)

0 голосов
/ 24 февраля 2020

вы используете setOnNavigationItemReselectedListener

используйте это setOnNavigationItemSelectedListener

0 голосов
/ 24 февраля 2020

Вы устанавливаете прослушиватель повторного выбора, но вам нужно установить прослушиватель onitem select. замените

 bottomNavigationView.setOnNavigationItemReselectedListener()

на

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