Проверить несколько элементов на панели навигации - PullRequest
0 голосов
/ 18 января 2020

У меня есть 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>

1 Ответ

0 голосов
/ 18 января 2020

вы можете установить, используя следующий код -

bottomNavigation.setSelectedItemId(R.id.my_menu_item_id1);
bottomNavigation.setSelectedItemId(R.id.my_menu_item_id2);
bottomNavigation.setSelectedItemId(R.id.my_menu_item_id3);

Или попробуйте следующий код для выбора нескольких пунктов -

bottomNavigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                for (int i = 0; i < 5; i++) { //here 5 is item count
                    MenuItem top = navigationView.getMenu().getItem(0).getSubMenu().getItem(i);
                    if (top.isChecked()) top.setChecked(false);
                }
                return true;
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...