如何使微调器宽度与最大可用项目宽度相同

我意识到,即使我使用wrap_content为我的微调(我避免使用match_parent因为我不想微调太长),并使用微调的项目视图和下拉项目视图match_parent

我还是发现微调器的宽度和最大的项目宽度不一样

在这里输入图像说明

正如你所看到的, UnitedKingdom是不适合的。

所以,如果我selectUnitedKingdom ,只有微调者会resize

在这里输入图像说明

即使没有明确select最大的项目,我怎样才能使微调器调整到最大的可用项目宽度?

我的微调XML是

 <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="10dp" /> 

和我的微调的意见XML是

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text_view_0" style="?android:attr/spinnerItemStyle" android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawablePadding="10dp" android:gravity="center_vertical" /> 

 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/checked_text_view_0" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="true" android:layout_width="match_parent" android:layout_height="48dp" android:minHeight="48dp" android:drawablePadding="10dp" /> 

您应该能够通过将下拉列表的宽度指定为WRAP_CONTENT来获得所需的效果:

 <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:dropDownWidth="wrap_content" android:spinnerMode="dropdown" /> 

这将在微调器的适配器中测量多达15个项目以确定它应该使用的宽度。

我只是用“解决”这个问题

 <Spinner android:id="@+id/country_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="200dp" android:layout_marginBottom="10dp" /> 

200dp只是try-n-error值,以确保下拉列表中的所有项目都可见。

将您的TextView放入Spinner Item XML中的LineanLayout中,

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text_view_0" style="?android:attr/spinnerItemStyle" android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawablePadding="10dp" android:gravity="center_vertical" /> </LinearLayout> 

并将您的TextView的ID传递给自定义适配器构造函数

 CustomAdapter adapter = new CustomAdapter(this,R.layout.spinner_item,R.id.text_view_0,arraylist); 

构造函数

  public CustomAdapter(Context context, int resource, int textViewId, ArrayList<String> resultList) { super(context, resource, textViewId, resultList); ... ... } 

试试这个:android:layout_width =“fill_parent”