我创建了一个BottomNavigationView包含三个项目。其中之一是用户选项卡。
对于访客选项卡,有一个图像,但 TintColor 正在应用,我们看不到它。
那么如何去除特定项目的色调?
我试过了
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
item.setIconTintList(null);
}
Run Code Online (Sandbox Code Playgroud)
但没有运气。它适用于 api 26 以上
我的活动
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:itemIconTint="@drawable/bottom_color_state"
app:itemBackground="@color/colorAccent"
app:itemTextColor="@drawable/bottom_color_state"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/menu_bottom_navigation" />
Run Code Online (Sandbox Code Playgroud)
底部颜色状态.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_enabled="true" />
<item android:color="@color/colorPrimaryDark" android:state_enabled="false" />
<item android:color="@color/white" android:state_selected="true" />
<item android:color="@color/off_white" android:state_selected="false" />
<item android:color="@color/white" android:state_checked="true" />
<item android:color="@color/off_white" android:state_checked="false" />
<item android:color="@color/off_white" />
</selector>
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在尝试使用底部导航栏的项目图标内的 firebase 存储 url 加载个人资料图像,这是我的代码:
Glide.with(getApplicationContext()).asBitmap().load(profilePicUrl)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
Drawable profileImage = new BitmapDrawable(getResources(), resource);
bottomNav.getMenu().getItem(4).setIcon(profileImage);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
Run Code Online (Sandbox Code Playgroud)
它profilePicUrl确实有效,我已经将它用于另一个图像视图。但是,当我运行该应用程序时,图标的尺寸会根据我尝试加载的图片而变化,但内部没有图像,如下所示。