java - 波纹效果在 Android 9(Api 28、Pie)上无法正常工作

标签 java android kotlin

这样的问题。设置按钮上的波纹效果。在所有版本的 Android 上都可以正常工作:当我按下按钮时,它会稍微亮起,然后当我释放按钮时,会出现一个小波纹。在 Android 9 上工作了一半:按钮突出显示,但释放按钮时没有波纹。有人遇到过这个吗?我该如何修复它?

背景按钮 - https://ru.stackoverflow.com/questions/935547/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82-ripple-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D0%BD%D0%B0-android-9-api-28-pie

最佳答案

我遇到了这个问题,这是由于我将首选项主题的背景颜色设置为白色

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="preferenceTheme">@style/SettingsTheme</item>
</style>
<style name="SettingsTheme" parent="PreferenceThemeOverlay">
    <item name="android:background">@color/white</item>
</style>

为了解决这个问题,我删除了首选项主题并将背景颜色设置为白色在我的首选项 fragment 中:

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    view.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
}

还将您的首选项代码更新为最新的 AndroidX 处理方式,例如在您的 prefs.xml 中使用以下内容:

<androidx.preference.PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">

关于java - 波纹效果在 Android 9(Api 28、Pie)上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54327356/

相关文章:

android - 使用书法库后操作栏文本未更改为自定义字体

java - 当切换到 Android 中的另一个 Activity 时应用程序停止

java - 在 Android Fragments 中按下

android - 可以像在导航组件中一样在 android 中的首选项上添加动画

java - GlassFish 禁止 403 错误页面

java - 发布和获取未映射到 Spring 引导 - 状态 : 404

java - 重构变量范围错误的遗留 Java 代码

kotlin - 如何只有Dagger @subcomponent的一个实例?

Swift - 从闭包中退出外部函数

Java根据文件名中的日期查找目录中的最新文件