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/

相关文章:

java - 我应该实现哪个接口(interface)才能有解析方法

java - X.509 证书不完整 : SubjectAlternativeName extension MUST be marked critical when subject field is empty

java - Java中Socket客户端如何获取动态端口号

java - 为什么 Kotlin 字节码会引用 java.util.function.BiConsumer?

android - WindowInsetsControllerCompat.OnControllableInsetsChangedListener 不会在插图显示操作上触发

java - 什么是NullPointerException,我该如何解决?

Android 忽略我的 setWidth() 和 setHeight()

php - android json 发布到 php

android - DexGuard:如何指定字符串加密

java - 如何在 Kotlin 中组合 lambda