微调文本大小不会改变?

Joh*_*mit 6 android styles android-layout android-spinner

我无法使用下面的代码更改微调器的文本大小或颜色:

<Spinner 
    android:id="@+id/spinner1"
    style="@style/submitspinner"
    android:layout_weight="2"
    android:entries="@array/a_code"
    android:prompt="@string/p_code" />
Run Code Online (Sandbox Code Playgroud)

样式:

<style name="submitspinner" parent="@android:TextAppearance.Widget.TextView.SpinnerItem">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:layout_margin">10sp</item> 
    <item name="android:textColor">@android:color/holo_blue_dark</item>
    <item name="android:textSize">@dimen/pt</item> 
</style>
Run Code Online (Sandbox Code Playgroud)

它看起来一样,如何增加文本大小并改变微调器的颜色?

Jos*_*ter 32

仅通过XML

只是为了帮助他人,以防他们静态设置他们的Spinner条目用XML.

如果您通过代码创建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>
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的信息[+1] ....还添加<style name ="spinnerItemStyle"parent ="@ android:style/Widget.Holo.DropDownItem.Spinner">例如将使自定义更容易 (3认同)
  • +1用于寻址styles.xml。我发现大多数开发人员倾向于为程序化解决方案而奋斗,而忽略了Android框架中不太受欢迎的方面。 (2认同)

Tro*_*omB 12

你应该为自定义Spinners做的是创建一个XML,它将作为Spinner中字符串的模板,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/standard_spinner_format"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="@dimen/pt"
   android:textColor="@android:color/holo_blue_dark"/>
Run Code Online (Sandbox Code Playgroud)

然后,当您在java中创建Spinner适配器时,请执行以下操作:

ArrayAdapter<CharSequence> typeAdapter = ArrayAdapter.createFromResource(getActivity(), 
          R.array.my_spinner_array, R.layout.custom_xml_spinner_layout); //change the last argument here to your xml above.
    typeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Run Code Online (Sandbox Code Playgroud)