首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BottomNavigationView以编程方式设置选定项的背景色

基础概念

BottomNavigationView 是 Android 平台上的一个视图组件,通常用于在底部显示几个导航选项卡。用户可以通过点击不同的选项卡在不同的页面之间切换。

相关优势

  1. 简洁直观:底部导航栏通常位于屏幕底部,用户可以轻松触及,操作直观。
  2. 多页面切换:支持多个页面之间的快速切换,提升用户体验。
  3. 自定义性强:可以自定义图标、文本和颜色等。

类型

BottomNavigationView 主要有以下几种类型:

  1. 固定模式:所有选项卡始终可见。
  2. 滚动模式:当选项卡过多时,可以滚动查看。

应用场景

适用于需要底部导航栏的应用,如新闻应用、社交媒体应用、电商应用等。

设置选定项的背景色

要在 BottomNavigationView 中以编程方式设置选定项的背景色,可以使用以下方法:

方法一:使用 setSelectedItemId

代码语言:txt
复制
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setSelectedItemId(R.id.item_id);

然后通过自定义 BottomNavigationMenuView 来设置选中项的背景色:

代码语言:txt
复制
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item_id:
                setItemBackground(item, Color.RED);
                break;
            // 其他选项卡的处理
        }
        return true;
    }
});

private void setItemBackground(MenuItem item, int color) {
    BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
    View itemView = menuView.getChildAt(menuView.indexOfChild((View) item.getActionView()));
    itemView.setBackgroundColor(color);
}

方法二:使用 setItemBackgroundResource

代码语言:txt
复制
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item_id:
                item.setCheckable(true);
                item.setChecked(true);
                bottomNavigationView.setItemBackgroundResource(R.color.selected_color);
                break;
            // 其他选项卡的处理
        }
        return true;
    }
});

参考链接

通过以上方法,你可以根据需要设置 BottomNavigationView 中选定项的背景色。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券