当前位置: 首页 > 知识库问答 >
问题:

如何在单击时不更改底部导航视图项目颜色

梁泰
2023-03-14

我的< code > bottomNavigationView 中有三个项目

当我点击配置文件项时,代码会检查此人是否已登录。如果此人未登录,则我需要启动一个新的活动否则我需要在我的frameLayout中加载一个片段

现在的问题是,当我点击个人资料项目,该人没有登录,然后活动开始,但当我点击回来,然后个人资料项目被突出显示,但家庭片段加载在框架布局中。

我已经尝试了以下方法来解决这个问题

1) 我使用setSelectedItemId设置单击配置文件项时的项目颜色,但它不起作用

有没有其他方法可以做到这一点?

共有3个答案

章宏峻
2023-03-14

你可以试试

<android.support.design.widget.BottomNavigationView
            android:id="@+id/navigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/toolbar_background"
            app:itemIconTint="@color/bottom_nac_color"
            app:itemTextColor="@color/bottom_nac_color"
            app:menu="@menu/bottom_navigation_main" />

这里@color/bottom_nac_color是您要在屏幕上显示的颜色

希望它起作用

萧麒
2023-03-14

试试这个。

选择器添加到您的代码中。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/holo_green_light" android:state_checked="true"/>
    <item android:color="@android:color/black" android:state_checked="false"/>
</selector>

然后添加xml代码。

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    app:itemIconTint="@drawable/selector_navigation"
    app:itemTextColor="@drawable/selector_navigation"
    app:menu="@menu/menu_navigation"/>

注意

// icon 
app:itemIconTint="@drawable/selector_navigation"
// text
app:itemTextColor="@drawable/selector_navigation"
袁青青
2023-03-14

我终于想好了该怎么做,我在这里分享

如果不想更改项目的颜色,则需要返回false

bottomNavigationView.setOnNavigationItemSelectedListener(
            new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                    switch (item.getItemId()) {
                        case R.id.action_home:
                            HomeFragment fav_frag = new HomeFragment();
                            currentFragment = fav_frag;
                            loadfragment(fav_frag);
                            break;
                        case R.id.action_designers:
                          break;
                        case R.id.action_profile:
                            if(PreferenceManager.getDefaultSharedPreferences(BaseActivity.this).getString("customer_id","").equalsIgnoreCase("")){
                                Intent intent=new Intent(BaseActivity.this,LoginActivity.class);
                                intent.putExtra("Target","Profile");
                                startActivity(intent);
                                overridePendingTransition(R.anim.slide_up,R.anim.stable);
// Here is the key , you need to return false when you don't want to change the items color
                                return false;
                            }else {
                                ProfileFragment accountFragment = new ProfileFragment();
                                currentFragment=accountFragment;
                                loadfragment(accountFragment);

                            }


                            break;
                    }
                    return true;
                }
            });
 类似资料:
  • 我在我的应用程序中添加了。 主要的xml bottom\u navigation\u main。xml 主活动单击 我想更改所选位置底部导航的图标。当用户单击一个项目时,我们如何实现此功能? (如果用户单击了一个项目,则图标将更改为另一个项目)

  • 底部导航上的选定项目不会在区域设置更改文本本身更改时更改,但选定项目仍然是区域设置更改前的旧项目,它应该是最后一个元素而不是最后一个元素,更改区域设置的动作发生在单独的片段上,导航底部存在于主活动上,它们之间没有通信我试图覆盖onConfigurationChange方法,在它上没有被调用,最好的做法是什么。

  • 我的天气应用程序上有一个底部导航视图,其中包含3个面板(今天,每小时 以下是问题的说明: 我希望无论单击那些导航视图,数据都保持不变。 我试过使用https://stackoverflow.com/a/60201555/16020235建议但它失败了,只有一个例外: 我发现很难实现他的代码,关于这个问题的其余建议都是用kotlin编写的。 拜托我该怎么解决这件事? 以下是我的代码: my_nav.

  • 我想在切换项目时切换到底部导航视图的图标。 我有浅蓝色图标和深蓝色图标的选定项目。我正在为每个导航项目使用选择器drawable,但我看到下面这样的图像,灰色为非活动图像,蓝色为活动图像 这是我的代码 bottom_nav_menu 家 和选择器 计划程序选择器 设置选择器 收藏夹选择器 首页选择器 活动代码 我做错了什么?请帮助。。。 编辑:我正在使用以下绘图工具 在此处输入链接描述 在此处输入

  • 我想更改android手机本机底部导航的颜色。就像下面的图片一样,它是完全黑暗的。这真的有可能吗?如果是,我该怎么做? 非常感谢。

  • 我正在向项目中添加一个底部导航视图(BottomNavigationView),我希望所选选项卡具有不同的文本(和图标色调)(以实现灰显非所选选项卡的效果)。在颜色选择器资源文件中对android:state\u selected=“true”使用不同的颜色似乎不起作用。我还尝试使用android:state\u-focused=“true”或android:state\u-enabled=“tr

  • 我遇到了一个问题,当深度链接到第二级片段时,导航UI没有选择正确的底部导航视图项。 我的意思是: 选择fragment_reading_lists:选择正确的底部导航项 从fragment_reading_lists导航- 当我深入链接到fragment\u discover\u landing时会发生什么?选择默认的底部导航项目。 是否有方法通知底部导航适配器在此实例中应选择哪个项目? 这是我的

  • 我的应用程序有问题。我有一个底部导航视图,包含3个不同的片段,尽管目前只有主要的内容。当我试图从左侧的两个片段中的一个移动到主视图时,问题就出现了,即当底部导航视图被隐藏时。我附上了主代码。 PD:我有25.3.1版本的所有库(如果有用的话)。 感谢您的关注。 activity\u main。xml 主要活动。Java语言 我也给你添加了两张图片。 Ofertas片段 主片段