为什么在加载数据和文本颜色后更改了微调器大小?

时间:2017-02-19 09:59:42

标签: android spinner retrofit android-spinner retrofit2

当我使用Retrofit从Web服务将数据加载到微调器时,它会增加微调器的高度并更改文本颜色。问题是什么?我该如何解决?

红色标记的微调器是标准尺寸,不加载任何数据。

enter image description here

布局:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_monthly_target_ad"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.nitolniloygroup.operating.view.activity.MonthlyTargetADActivity">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:background="@android:drawable/btn_dropdown"
            android:textColor="@android:color/holo_blue_bright"
            android:id="@+id/spinnerZone" />


        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:background="@android:drawable/btn_dropdown"
            android:textColor="@android:color/holo_blue_bright"
            android:id="@+id/spinnerSubZone" />
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:background="@android:drawable/btn_dropdown"
            android:textColor="@android:color/holo_blue_bright"
            android:id="@+id/spinnerBranch" />
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:background="@android:drawable/btn_dropdown"
            android:textColor="@android:color/holo_blue_bright"
            android:id="@+id/spinnerFieldOfficer" />
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:background="@android:drawable/btn_dropdown"
            android:textColor="@android:color/holo_blue_bright"
            android:id="@+id/spinnerFieldOfficeraaa" />

        <Button
            android:text="Search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:drawable/btn_default"
            android:onClick="onClickSearch"
            android:id="@+id/button4" />




    </LinearLayout>

</RelativeLayout>

3 个答案:

答案 0 :(得分:2)

因为你制作了微调高度warp_content。 避免给旋转器一个特定的高度,如80dp

答案 1 :(得分:1)

您可以设置微调器的最小高度:

android:minHeight="80dp"

答案 2 :(得分:0)

要更改微调器大小:使用padding到0dp

 <Spinner
    android:id="@+id/spinnerSubZone"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:background="@android:drawable/btn_dropdown"
    android:minHeight="50dp"
    android:padding="0dp"  //add this
    android:textColor="@android:color/holo_blue_bright" />

更改文字颜色:在微调框对象中覆盖setOnItemSelectedListener方法

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            ((TextView) parent.getChildAt(0)).setTextColor(Color.RED); //change color
            ((TextView) parent.getChildAt(0)).setTextSize(10);  //change size
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

或您可以使用自定义适配器类,请参阅here