华为虚拟器用ets语言做底部导航栏要求选中时彩色,没选中时黑白要具体代码
时间: 2024-10-08 19:03:03 浏览: 27
华为ets5623 b版无线固话刷机资料
5星 · 资源好评率100%
华为云的Ets(Emotion UI)是一种基于Android的UI库,用于构建美观、高效的HMS App。要在底部导航栏实现选中状态彩色,未选中状态黑白效果,你可以创建一个自定义的BottomNavigationView并添加监听事件。以下是一个简单的示例代码:
首先,确保你已经在项目的`build.gradle`文件中添加了对HMS的依赖:
```groovy
dependencies {
implementation 'com.huawei.hms:mobie:3.0.3'
}
```
然后,在布局文件(如`bottom_navigation_bar.xml`)中创建自定义BottomNavigationView:
```xml
<com.example.yourapp.custom.BottomNavigationView
android:id="@+id/bottom_navigation_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemBackground="@color/white"
app:itemIconTint="@drawable/home_item_color_selector"
app:itemTextColor="@drawable/home_item_text_color_selector">
<!-- 添加底部导航栏的各个选项 -->
</com.example.yourapp.custom.BottomNavigationView>
```
接下来,在`custom.BottomNavigationView`这个自定义视图中创建两个颜色选择器`home_item_color_selector.xml`和`home_item_text_color_selector.xml`:
```xml
<!-- home_item_color_selector.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/color_selected" /> <!-- 选中状态 -->
<item android:state_checked="false" android:drawable="@color/gray" /> <!-- 未选中状态 -->
</selector>
<!-- home_item_text_color_selector.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:textColor="@color/white" />
<item android:state_checked="false" android:textColor="@color/black" />
</selector>
```
这里的`@color/color_selected`, `@color/gray`, `@color/white`, 和 `@color/black`分别代表你想要的颜色。
最后,在你的Activity或Fragment中初始化并设置监听:
```java
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation_view);
bottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// 更新对应的菜单项的状态...
return true;
}
});
```
阅读全文