我应该如何加大微调列表项的字体大小?(How should I increase the spinn

2019-06-24 02:37发布

这是我的飞旋的代码:

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

我只是想增加列表项目的大小。 我怎样才能做到这一点?

Answer 1:

保存下面的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);


Answer 2:

通过XML只有

只是为了帮助别人的情况下,他们都是静态设置在XML的微调项。

上述答案的工作,如果你通过代码创建微调 ,但如果您是通过XML,即使用设置您的微调项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>


Answer 3:

上述解决方案都很难在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);


Answer 4:

如果你只是想增加大小,即下拉是好的可触摸,那么你根本就改变simple_spinner_itemsimple_spinner_dropdown_item:

 ArrayAdapter.createFromResource(this, R.array.item_array, android.R.layout.simple_spinner_dropdown_item);
                                                                       ---------------------------^


Answer 5:

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) {

    }
};


文章来源: How should I increase the spinner list item font size?