底部导航需要点击两次才能执行任务
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
我有一个底部导航栏,我不知道为什么,但我需要点击它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