我想要将Spinner
中的默认文本颜色更改为其他颜色,但我还没有找到解决方案。我只能通过类似于此链接如何更改Spinner文本大小和文本颜色?所述的TextView
的解决方案。
请问是否有其他直接针对Spinner
的方法呢?
注意:请提供Xamarin解决方案。谢谢!
我想要将Spinner
中的默认文本颜色更改为其他颜色,但我还没有找到解决方案。我只能通过类似于此链接如何更改Spinner文本大小和文本颜色?所述的TextView
的解决方案。
请问是否有其他直接针对Spinner
的方法呢?
注意:请提供Xamarin解决方案。谢谢!
只针对选定项更改颜色,请尝试以下方法:
spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
((TextView)parentView.getChildAt(0)).setTextColor(Color.RED);
}
});
另一种方式:
<style name="spinnerTheme">
<item name="android:textColor">@color/gray_dark</item>
</style>
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="50dp"
android:theme="@style/spinnerTheme"/>
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:textSize="20sp"
android:entries="@array/planets"/>
您需要创建自己的布局文件,并使用自定义定义来定义下拉列表项spinner_item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#ff0000" />
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee"
android:textColor="#aa66cc"/>
最后,在 spinner 的声明中还有一个变化:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, R.layout.spinner_item);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(adapter);
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textColor="#962b2b"
android:textAlignment="inherit"/>
现在在集合中,使用自定义的XML布局设置旋转器适配器,如下所示:
ArrayAdapter adapter = new ArrayAdapter(getActivity(),R.layout.custom_spinner,array);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner.setAdapter(adapter);
您可以通过将以下代码添加到style.xml中来实现:
<resources>
<style name="MySpinnerLook"
parent="@android:style/Widget.TextView.SpinnerItem">
<item name="android:textSize">22sp</item> //any size
</style>
在使用spinner的xml中,使用style标签添加对MyStyleLook的引用,如下:
style="@style/MySpinnerLook"
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="@style/spinnerItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:ellipsize="marquee"
android:layoutDirection="ltr"
android:padding="@dimen/padding_5"
android:singleLine="true"
android:textSize="@dimen/textsize_base" />
adapter?.setDropDownViewResource(R.layout.spinner_text)
spSourceAccount.adapter = adapter
ArrayAdapter
并重写getView
和getDropDownView
方法。 - Saurabh