【发布时间】:2017-12-11 17:30:06
【问题描述】:
我有一个 android 应用程序,其中有一个列表视图,选择模式设置为 multiple。我已将布局设置为 simple_list_item_multiple_choice。它在行的右侧提供复选框。
但问题是:这些复选框的按钮色调是可怕的蓝色(这与我的应用程序配色方案相去甚远)。无论我做什么,我都无法改变它。
我已经尝试过:为 CheckBox 创建一个样式并为 CheckedTextView 创建一个样式,在那里更改各种按钮色调和颜色强调。
这些都不起作用。 我该怎么办?
一块布局:
...
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView1"
android:layout_weight="1"
android:choiceMode="singleChoice" /> ...
一段活动代码:
ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(),
android.R.layout.simple_list_item_multiple_choice, players);
itemsList.setAdapter(adapter);
我尝试过的解决方案:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:colorPrimary">@color/MainColor</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/MainColor</item>
<item name="colorAccent">@color/MainColor</item>
<item name="colorPrimary">@color/MainColor</item>
<item name="android:checkboxStyle">@style/CheckBoxStyle</item>
<item name="android:checkedTextViewStyle">@style/CheckedTextViewStyle</item>
</style>
<style name="CheckBoxStyle" parent="AppTheme">
<item name="android:tint">@color/colorAccent</item>
<item name="android:buttonTint">@color/colorAccent</item>
</style>
<style name="CheckedTextViewStyle" parent="AppTheme">
<item name="android:colorButtonNormal">@color/colorAccent</item>
<item name="android:checkMarkTint">@color/colorAccent</item>
<item name="android:tint">@color/colorAccent</item>
<item name="android:buttonTint">@color/colorAccent</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
UPD:另外,如果有人知道如何在没有复选框的情况下实现这一点,而且不创建无用的自定义适配器,我也会接受这个作为答案。
【问题讨论】:
标签: java android listview checkbox android-styles