我对Light主题和快速滚动ListView有轻微问题。正如您在下图中所看到的,当使用Light主题时,拖动滚动条时弹出当前字母会在深灰色背景上包含黑色文本,这使得它很难阅读并且看起来很难看。
如果我在主题中覆盖android:textColorPrimary它会改变颜色,但ListView中的所有项目以及应用程序中其他地方的其他UI元素也是如此,因此它不是一个可行的解决方案。
我正在使用GreenDroid并且它是关联的类,但查看源代码,它似乎只是使用标准的ListView,因此不太可能成为问题。
我还发现了this question,这使得它看起来很可能不是GreenDroid问题,但不幸的是,作者在评论中给出的解决方案并未详细解释如何修复它。
关于如何解决这个问题的任何想法?
谢谢, 丹尼尔
答案 0 :(得分:2)
最简单的方法是定义一个仅应用于ListActivity的特殊主题,如下所示。
<style name="Theme.MyApp" parent="@style/Theme.GreenDroid.Light.NoTitleBar">
...
</style>
<style name="Theme.MyApp.TweakedItems" parent="@style/Theme.MyApp">
...
<!-- Default color for Android Dark Theme -->
<item name="android:textColorPrimary">@android:color/primary_text_dark</item>
</style>
然后,您可以修改GreenDroid中的任何ItemView以应用不同的颜色。
<?xml version="1.0" encoding="utf-8"?>
<greendroid.widget.itemview.TextItemView
xmlns:android="http://schemas.android.com/apk/res/android"
style="?attr/gdTextItemViewStyle"
android:id="@+id/gd_text"
android:layout_height="?attr/gdItemViewPreferredHeight"
android:minHeight="?attr/gdItemViewPreferredHeight"
android:paddingLeft="?attr/gdItemViewPreferredPaddingLeft"
android:singleLine="true"
android:ellipsize="end"
android:gravity="center_vertical"
android:textColor="#000000" />
从API Level 11开始,您可以使用fastScrollTextColor
更改颜色答案 1 :(得分:1)
我在这里找到了答案:
https://gist.github.com/DHuckaby/d6b1d9c8e7f9d70c39de
public class CustomListView extends ListView {
public CustomListView(Context context, AttributeSet attrs) {
super(new ContextThemeWrapper(context, R.style.CustomListView), attrs);
}
}
styles.xml
<resources>
<style name="CustomListView" parent="@style/GlobalTheme">
<item name="android:textColorPrimary">?android:textColorPrimaryInverse</item>
</style>
</resources>