- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用background=ripple在BottomNavigation中制作按压效果,但在我的例子中,MyBottomNavigation颜色是深色的,因此由于波纹效果颜色是灰色的,它看起来变得不可见,有其他方法可以解决这个问题吗?
//MainActivity.java
//BottomNavigation
BottomNavigationView mBottomNav = findViewById(R.id.Bottom_Navigation);
mBottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch(menuItem.getItemId()){
case R.id.Nav_Home:
selectedFragment = new HomePageFragment();
break;
/*case R.id.Nav_Favorites:
selectedFragment = new FavoritesPageFragment();
break;*/
/*case R.id.Nav_Favorites:
selectedFragment = new SettingPageFragment();
break;*/
case R.id.Nav_Follow:
selectedFragment = new FollowPageFragment();
break;
/*case R.id.Nav_Chat:
selectedFragment = new ChatPageFragment();
break;*/
case R.id.Nav_Profile:
selectedFragment = new ProfilePageFragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.Fragment_Container, selectedFragment).commit();
return true;
}
});
mBottomNav.setItemIconTintList(null);
//activity_main.xml
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/Bottom_Navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/bottom_navigation"
android:backgroundTint="@color/colorBlack"
android:background="@drawable/ripple_effect_raised"
app:itemIconTint="#ffffff"
app:itemTextAppearanceActive="@style/navTextActive"
app:itemTextAppearanceInactive="@style/navTextInactive"
app:itemTextColor="#ff0000"/>
//Ripple.xml(新闻效果)
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorWhite">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
<corners android:radius="7dp" />
</shape>
</item>
//已更新
//Activity.xml
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/Bottom_Navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/bottom_navigation"
app:itemTextAppearanceActive="@style/navTextActive"
app:itemTextAppearanceInactive="@style/navTextInactive"
app:itemIconTint="#ffffff"
app:itemTextColor="#FFFFFF"
android:background="@drawable/shape"
app:itemRippleColor="@color/bottomnav_ripple"
/>
//bottomnav_ripple.xml(我把它放在res/color中)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected. -->
<item android:alpha="0.68" android:color="#21FFFF" android:state_pressed="true" android:state_selected="true"/>
<item android:alpha="0.66" android:color="#21FFFF" android:state_focused="true" android:state_hovered="true" android:state_selected="true"/>
<item android:alpha="0.62" android:color="#21FFFF" android:state_focused="true" android:state_selected="true"/>
<item android:alpha="0.54" android:color="#21FFFF" android:state_hovered="true" android:state_selected="true"/>
<item android:alpha="0.50" android:color="#21FFFF" android:state_selected="true"/>
<!-- Unselected. -->
<item android:alpha="0.68" android:color="#FFFFFF" android:state_pressed="true"/>
<item android:alpha="0.66" android:color="#FFFFFF" android:state_focused="true" android:state_hovered="true"/>
<item android:alpha="0.62" android:color="#FFFFFF" android:state_focused="true"/>
<item android:alpha="0.54" android:color="#FFFFFF" android:state_hovered="true"/>
<item android:alpha="0.50" android:color="#FFFFFF"/>
//shape.xml(我把它放在res/drawable中)(如果我在shape.xml中使用黑色,颜色仍然不可见,所以我尝试使用紫色,但它仍然是灰色的)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_purple" />
<corners android:radius="7dp" />
</shape>
最佳答案
仅对形状使用 android:background
并使用 app:itemRippleColor
定义项目上的波纹:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:background="@drawable/shape"
app:itemRippleColor="@color/bottomnav_ripple"
../>
其中shape.xml
是:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@android:color/black" />
<corners android:radius="7dp" />
</shape>
和bottomnav_ripple.xml
类似:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected. -->
<item android:alpha="0.68" android:color="#21FFFF" android:state_pressed="true" android:state_selected="true"/>
<item android:alpha="0.66" android:color="#21FFFF" android:state_focused="true" android:state_hovered="true" android:state_selected="true"/>
<item android:alpha="0.62" android:color="#21FFFF" android:state_focused="true" android:state_selected="true"/>
<item android:alpha="0.54" android:color="#21FFFF" android:state_hovered="true" android:state_selected="true"/>
<item android:alpha="0.50" android:color="#21FFFF" android:state_selected="true"/>
<!-- Unselected. -->
<item android:alpha="0.68" android:color="#FFFFFF" android:state_pressed="true"/>
<item android:alpha="0.66" android:color="#FFFFFF" android:state_focused="true" android:state_hovered="true"/>
<item android:alpha="0.62" android:color="#FFFFFF" android:state_focused="true"/>
<item android:alpha="0.54" android:color="#FFFFFF" android:state_hovered="true"/>
<item android:alpha="0.50" android:color="#FFFFFF"/>
</selector>
根据需要更改颜色和 Alpha channel 。
关于java - 如何使用波纹修复按下效果 BottomNavigation 变得不可见 - AndroidX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58369530/
我在 android 代码中使用 asmack XMPP。我可以正常登录 XMPP 服务器,但是当我尝试创建新用户时出现问题。我想要实现的是: 以管理员身份登录。 创建一个新用户。 从管理员注销。 以
这是我的标记页面,其中有一个按钮可以从数据库中搜索数据并显示在网格中 这是我背后的代码 if (!IsPostBack) { LblInfo.Text = "Page Load
当我多次将相同的 float 值插入到我的集合中时,本应花费恒定时间的 x in s 检查变得非常慢。为什么? 时序x in s的输出: 0.06 microseconds 0.09 mi
我有一个小型聊天客户端,可以将所有历史记录存储在 sqlite 数据库中。当用户单击我的应用程序中的 history 选项卡时,我的应用程序会获取所有相关历史记录并将其显示在 QWebView 中。我
我是一名优秀的程序员,十分优秀!