我有一个运行了几年的安卓应用程序。最近,我发现应用中的一个ListView在滚动时会变得模糊。这个问题只在Android Marshmallow版本下出现。
任何帮助都将不胜感激。谢谢!我有一个运行了几年的安卓应用程序。最近,我发现应用中的一个ListView在滚动时会变得模糊。这个问题只在Android Marshmallow版本下出现。
任何帮助都将不胜感激。谢谢!前言: 在此之前我发布了一个单独的答案,但是那个解决方案只在我的MotoX上有效。后来我发现它并不适用于我的Galaxy Tab A。这里的答案似乎更加通用:
通过为我的应用程序定义单独的ListView样式并指定不同的列表分隔符,我成功地修复了滚动模糊问题。因此,对于我的应用程序主题,我设置了以下内容:
<item name="android:listViewStyle">@style/ListViewStyleNoBlur</item>
其中ListViewStyleNoBlur
的定义如下:
<style name="ListViewStyleNoBlur" parent="@android:style/Widget.ListView.White">
<item name="android:divider">@android:drawable/divider_horizontal_bright</item>
</style>
values-v23
资源文件夹中,以便更改不会影响到Marshmallow之前的设备。android:style/Theme.Light
,这就是为什么我的列表视图样式的父项是android:style/Widget.ListView.White
。我的应用程序最小SDK是8,这就是为什么我使用了如此“旧”的主题。我还注意到,如果我使用“更新”的主题,例如Holo,则模糊效果不存在。我之前也遇到过这个问题,经过反复尝试,终于找到了解决方法。希望对你也有用。这似乎是与列表视图中的滚动条相关的Marshmallow中的一个bug。我在应用程序主题中设置了以下属性,删除此属性后可以解决模糊滚动的问题:
<item name="android:fadeScrollbars">false</item>
使用true
而不是false
也可以,但是这是不必要的,因为它是默认值。我还发现(通过试错)使用android:fastScrollEnabled="true"
会导致相同的模糊效果,但根据您的滚动条样式,您似乎没有使用它。
总之,不要使用android:fadeScrollbars
。如果这不能解决您的问题,请尝试调整您在ListView上使用的任何其他与滚动条相关的样式,记住这些样式可能是直接视图的一部分,也可能是活动或应用程序主题的一部分。