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

时间:2019-01-23 12:31:47

标签: 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

1 个答案:

答案 0 :(得分:0)

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

<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>

要解决此问题,我删除了preferenceTheme,并在我的首选项片段中将背景色设置为白色:

@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">