У меня есть BottomNavigationBar с 4 элементами, и я хочу, чтобы несколько элементов можно было проверять. Я знаю, что эта панель используется для навигации по действиям, но я хочу, чтобы более 1 элемента было chackable
Если этот флажок не установлен, по крайней мере измените цвет текста или цвет значка элементов по отдельности, вместо того, чтобы изменять их как целый
код
final BottomNavigationView bottomNavigation = findViewById(R.id.bottom_navigation);
bottomNavigation.getMenu().setGroupCheckable(0, true, true);
BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.vpn:
bottomNavigation.getMenu().findItem(R.id.home).setVisible(false);
bottomNavigation.getMenu().findItem(R.id.home).setChecked(true);
bottomNavigation.getMenu().findItem(R.id.theme).setTitle("ON");
Toast.makeText(getApplicationContext(),"VPN",Toast.LENGTH_SHORT).show();
return true;
case R.id.incognito:
Toast.makeText(getApplicationContext(),"Private",Toast.LENGTH_SHORT).show();
return true;
case R.id.theme:
Toast.makeText(getApplicationContext(),"Theme",Toast.LENGTH_SHORT).show();
return true;
case R.id.home:
Toast.makeText(getApplicationContext(),"Home",Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
};
bottomNavigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener);
xml код
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/black"
android:theme="@style/BottomNavigationTheme"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_navigation_menu"/>
Стиль. xml
<style name="BottomNavigationTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/white</item>
</style>