这是我的微调器代码:
Spinner food = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
this, R.array.item_array, android.R.layout.simple_spinner_item);
foodadapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
food.setAdapter(foodadapter);
这是我创建微调器的布局文件的一部分:
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView1" />
这是item_array
:
<resources>
<string name="item_picker">Select an iten</string>
<string-array name="item_array">
<item>Pizza</item>
<item>Burger</item>
<item>Sandwiches</item>
<item>Bread</item>
<item>Pastries</item>
<item>Snackers</item>
</string-array>
</resources>
注意:我不想要simple_spinner_dropdown_item
。
我只想增加列表项的大小。我怎么能这样做?
答案 0 :(得分:66)
将以下xml保存为布局文件夹
中的spinner_layout.xml<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerTarget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="13sp"
/>
更改所需的textSize。 并使用以下适配器代码填充它。
Spinner food = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
this, R.array.item_array, R.layout.spinner_layout);
foodadapter.setDropDownViewResource(R.layout.spinner_layout);
food.setAdapter(foodadapter);
答案 1 :(得分:30)
只是为了帮助他人,以防他们以XML格式静态设置Spinner条目。
如果您是通过代码创建 Spinner ,但如果您通过XML设置Spinner条目,即使用android:entries
,则上述答案有效,那么您可以调整文字大小以及具有以下两个主题设置的其他属性:
res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- For the resting Spinner style -->
<item name="android:spinnerItemStyle">
@style/spinnerItemStyle
</item>
<!-- For each individual Spinner list item once clicked on -->
<item name="android:spinnerDropDownItemStyle">
@style/spinnerDropDownItemStyle
</item>
</style>
<style name="spinnerItemStyle">
<item name="android:padding">10dp</item>
<item name="android:textSize">20sp</item>
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="spinnerDropDownItemStyle">
<item name="android:padding">20dp</item>
<item name="android:textSize">30sp</item>
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
答案 2 :(得分:2)
以上解决方案都是在xml中进行硬编码的。
有一种替代解决方案,允许您以编程方式更改它。 https://stackoverflow.com/a/11494962/5089713 拥有TextView后,您可以对其执行任何操作,例如更改字体大小。
您的代码看起来像
Spinner food = (Spinner) findViewById(R.id.spinner1);
CharSequence[] strings = getActivity().getResources().getTextArray(R.array.item_array);
ArrayAdapter<CharSequence> foodadapter = new ArrayAdapter<CharSequence>(getActivity(), android.R.layout.simple_spinner_item, strings){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view =super.getView(position, convertView, parent);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
// do whatever you want with this text view
textView.setTextSize(20);
return view;
}
};
foodadapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
food.setAdapter(foodadapter);
答案 3 :(得分:0)
如果您只想增加尺寸,下拉列表是可以触摸的,那么您只需将 simple_spinner_item 更改为 simple_spinner_dropdown_item :
ArrayAdapter.createFromResource(this, R.array.item_array, android.R.layout.simple_spinner_dropdown_item);
---------------------------^
答案 4 :(得分:0)
private OnItemSelectedListener spinner = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK);
((TextView) parent.getChildAt(0)).setTextSize(10);
}
public void onNothingSelected(AdapterView<?> parent) {
}
};