当我使用Retrofit从Web服务将数据加载到微调器时,它会增加微调器的高度并更改文本颜色。问题是什么?我该如何解决?
红色标记的微调器是标准尺寸,不加载任何数据。
布局:
<?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>
答案 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