我正在使用自定义微调器。它几乎与默认值相似,只是我需要在每个项目的左侧设置填充(在文本前每行的下拉填充中)。我能够做到这一点。但是当值列表作为下拉列表显示给用户时,我也想以不同的颜色显示所选项目。
我使用文本视图作为下拉项目。
有人可以建议是否可以完成。我已经厌倦了用 xml 来实现这一点,但我找不到任何选择。
提前致谢。
编辑:蓝色选定项目的文本。
我正在使用自定义微调器。它几乎与默认值相似,只是我需要在每个项目的左侧设置填充(在文本前每行的下拉填充中)。我能够做到这一点。但是当值列表作为下拉列表显示给用户时,我也想以不同的颜色显示所选项目。
我使用文本视图作为下拉项目。
有人可以建议是否可以完成。我已经厌倦了用 xml 来实现这一点,但我找不到任何选择。
提前致谢。
编辑:蓝色选定项目的文本。
例如,您可以指定android:dropDownSelector="@color/spinner_selector"
spinner 元素并将 spinner_selector 颜色定义为 #800000FF。
请参阅 http://developer.android.com/reference/android/widget/Spinner.html#attr_android:dropDownSelector
您可以通过以下代码来做到这一点。
只需将样式应用于您的文本视图作为背景。
// TextStyle 是包含以下代码的 xml 文件。
<item android:state_selected="false"
android:drawable="@android:color/white" />
<item android:state_selected="true"
android:drawable="android:drawable="@android:color/blue"" />
You have to change color of textview at runtime by using spinner's method setOnItemSelectedListener. For Example,
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
TextView tv = (TextView) view.findViewById(R.id.tv );
tv.setTextColor(R.color.green);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});