底部导航需要点击两次才能执行任务

Bottom Navigation Need To Clicked 2 Times Before Executing Task

我有一个底部导航栏,我不知道为什么,但我需要点击它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" />

这是我在 activity

上的称呼
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;
            }
        }
    });
}

您使用

bottomNavigationView.setOnNavigationItemReselectedListener 而不是
bottomNavigationView.setOnNavigationItemSelectedListener

未重新选择,仅选择 ;)

您正在设置一个 reselect 侦听器,但您需要设置 onitem select 侦听器。 替换

 bottomNavigationView.setOnNavigationItemReselectedListener()

BottomNavigationView.OnNavigationItemSelectedListener()

您正在使用 setOnNavigationItemReselectedListener

使用这个 setOnNavigationItemSelectedListener