Java 如何使用ripple-AndroidX修复不可见的按键效果
我在底部导航中使用background=ripple来产生压力效果,但在我的例子中,MyBottomNavigation的颜色是暗的,所以它似乎变得不可见,因为涟漪效果的颜色是灰色的,有没有其他方法来解决这个问题 //MainActivity.javaJava 如何使用ripple-AndroidX修复不可见的按键效果,java,android,bottomnavigationview,material-components,material-components-android,Java,Android,Bottomnavigationview,Material Components,Material Components Android,我在底部导航中使用background=ripple来产生压力效果,但在我的例子中,MyBottomNavigation的颜色是暗的,所以它似乎变得不可见,因为涟漪效果的颜色是灰色的,有没有其他方法来解决这个问题 //MainActivity.java //BottomNavigation BottomNavigationView mBottomNav = findViewById(R.id.Bottom_Navigation); mBottomNav.setOnNavigat
//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(对印刷机的影响)
//更新
//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表示)
//xml(我把它放在res/drawable中)(如果我在shape.xml中使用黑色,颜色仍然不可见,所以我尝试使用紫色,但仍然是灰色)
仅对形状使用
android:background
,并app:itemRippleColor
定义项目上的涟漪:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:background="@drawable/shape"
app:itemRippleColor="@color/bottomnav_ripple"
../>
和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通道
在上面添加您的xml文件帖子更新是的,这就是我想要做的,我将shape.xml和bottomnav_ripple放在drawable文件夹中,并添加了//android:background=“@drawable/shape”//app:itemRippleColor=“@drawable/bottomnav_ripple”,但它没有连接//AAPT:error:attribute itemRippleColor(又名com.indofun.android.indojoy:itemRippleColor)未找到。@SunggakiChannel
itemRippleColor
是一种不可绘制的颜色。您必须将文件放入res/color
folder中,但此方法app:itemRippleColor在底部导航库中找不到,AAPT:error:attribute itemRippleColor(又名com.indofun.android.indojoy:itemRippleColor)找不到。@SunggakiChannel使用1.1.0-beta01版本的Anks 1.1.0-beta01有itemRippleColor,我更新了我的帖子并包含了我应用程序的图片,它看起来仍然是灰色的
<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>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:background="@drawable/shape"
app:itemRippleColor="@color/bottomnav_ripple"
../>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@android:color/black" />
<corners android:radius="7dp" />
</shape>
<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>