android BottomNavigationView选中的时候只展示图标
时间: 2024-05-21 09:06:53 浏览: 188
您可以通过在布局文件中设置BottomNavigationView的itemIconTint属性为null来实现选中时只展示图标的效果。具体实现方式如下:
```xml
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemIconTint="@null"
app:menu="@menu/bottom_navigation_menu" />
```
相关问题
BottomNavigationView只显示选中的图标
要使BottomNavigationView只显示选中的图标,您可以使用setOnNavigationItemSelectedListener方法来监听选项的选择事件,并在选中时设置相应的图标。您可以按照以下步骤操作:
1. 首先,为您的BottomNavigationView设置菜单项和图标。在您的布局文件中,使用`app:menu`属性为BottomNavigationView指定菜单文件。例如:
```xml
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation_menu" />
```
2. 在您的活动或片段中,找到对应的BottomNavigationView实例,并使用setOnNavigationItemSelectedListener方法设置选项选择监听器。例如:
```java
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// 设置选中的图标
item.setIcon(R.drawable.selected_icon);
// 其他未选中的图标恢复默认
Menu menu = bottomNavigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
MenuItem menuItem = menu.getItem(i);
if (menuItem.getItemId() != item.getItemId()) {
menuItem.setIcon(R.drawable.default_icon);
}
}
return true;
}
});
```
在监听器的onNavigationItemSelected方法中,您可以根据选项的选择状态设置相应的图标。在这个例子中,我们将选中的图标设置为`selected_icon`,将其他未选中的图标设置为`default_icon`。
这样,当用户选择不同的选项时,只有选中的图标会显示为`selected_icon`,其他未选中的图标会显示为`default_icon`。
如何让BottomNavigationView显示所有的图标,而非选中的图标
要使BottomNavigationView显示所有的图标,而不仅仅是选中的图标,您可以使用setOnNavigationItemSelectedListener方法来监听选项的选择事件,并在选择时设置所有图标。您可以按照以下步骤操作:
1. 首先,为您的BottomNavigationView设置菜单项和图标。在您的布局文件中,使用`app:menu`属性为BottomNavigationView指定菜单文件。例如:
```xml
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation_menu" />
```
2. 在您的活动或片段中,找到对应的BottomNavigationView实例,并使用setOnNavigationItemSelectedListener方法设置选项选择监听器。例如:
```java
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// 遍历所有菜单项设置图标
Menu menu = bottomNavigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
MenuItem menuItem = menu.getItem(i);
if (menuItem.getItemId() == item.getItemId()) {
// 设置选中项的图标
menuItem.setIcon(R.drawable.selected_icon);
} else {
// 设置其他未选中项的图标
menuItem.setIcon(R.drawable.default_icon);
}
}
return true;
}
});
```
在监听器的onNavigationItemSelected方法中,我们遍历所有的菜单项,并根据当前选中的项设置对应的图标。选中的项我们设置为`selected_icon`,其他未选中的项我们设置为`default_icon`。
这样,当用户选择不同的选项时,BottomNavigationView会显示所有的图标,并根据选择状态设置对应的图标。
阅读全文