1

我有一个 AutoCompleteTextView 组件,我想将其默认下拉选择器更改为另一种颜色。首先我尝试了: android:dropDownSelector="#FF400000",但它根本没有出现选择器!接下来,我将颜色放入可绘制资源中:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/holo_blue_dark"/>
</shape>

并链接它:android:dropDownSelector="@drawable/drop_down_selector",但效果相同(没有选择器)。接下来我发现有人打开了一个类似的问题,只是为了微调:http ://code.google.com/p/android/issues/detail?id=24922 ,所以我尝试定义一种样式,如解决方案中所述:

<style name="AutoCompleteDropDown" parent="@android:style/Theme.Holo.Light">
    <item name="android:dropDownListViewStyle">@style/AutoCompleteSelector</item>
</style>
<style name="AutoCompleteSelector" parent="@android:style/Widget.Holo.Light.ListView">
    <item name="android:listSelector">#FF400000</item>
</style>

并链接它:style="@style/AutoCompleteDropDown",但它什么也没做(但是,自从我删除了该dropDownSelector属性后,默认选择器又回来了)。

那么我在这里错过了什么?我究竟做错了什么?

更新:好的,正如建议的那样,我也尝试了一个选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_selected="true" android:state_pressed="true" 
       android:state_focused="true" android:state_activated="true"
       android:drawable="@android:color/holo_green_light"/>
</selector>

但它没有用,我仍然没有选择器(至少我看不到)。

4

2 回答 2

1

主题和风格因意图而异。并使用不同的属性。主题为不同的小部件定义样式。样式定义小部件本身。主题应用于应用程序或活动。

1)如果您希望它仅用于一个小部件。

您需要转到/platforms//res/values/values.xml,了解如何为您的小部件定义样式(AutoCompleteTextView)。拿起所需的属性。定义与系统中相同的选择器,但需要进行修改。你甚至可以在 /res/drawable 中找到选择器

2)如果你想在整个应用程序中做到这一点:

a) 你需要去 /platforms//res/values/themes.xml

b)在那里您可以找到您为 AutoCompleteTextViewb 选择的主题中的样式

        <item name="autoCompleteTextViewStyle">
             @android:style/Widget.AutoCompleteTextView
        </item>

c) 然后到 res/values/styles.xml

d) 在那里您可以找到小部件的样式。

e) 然后你需要扩展主题。并通过新创建的样式(如 1 选项)覆盖 autoCompleteTextViewStyle 属性。

于 2012-10-08T07:01:33.827 回答
1

尝试从适配器生成的视图中删除背景。这对我有帮助。

于 2014-07-04T09:46:56.287 回答