【问题标题】:Check multiple items on Navigation Bar检查导航栏上的多个项目
【发布时间】:2020-01-18 23:53:29
【问题描述】:

我有一个包含 4 个项目的 BottomNavigationBar,我希望可以检查多个项目。我知道这个栏是用来浏览活动的,但我希望不止一项是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"/>

Style.xml

<style name="BottomNavigationTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

【问题讨论】:

    标签: java android checkbox colors navigation


    【解决方案1】:

    您可以使用以下代码进行设置 -

    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;
                }
            });
    

    【讨论】:

    • 不能用这个选择多个项目。
    • 您是否尝试过多个语句?还让我知道您想选择多个项目还是只想显示已选择的多个项目?
    • 我只想显示选择的多个项目,因为我没有使用片段。用我的代码替换了片段。此代码还使最后一行的项目被选中。所以基本上一旦选择了第二个项目,第一个项目就会被取消选中
    • 是的,我做到了。还有其他选项可以突出显示多个项目吗?或者至少更改多个项目名称的颜色
    • 仍然无法正常工作。据我所知,android不允许选择多个项目。所以请帮我突出显示多个项目
    猜你喜欢
    • 2013-04-12
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多