如何使微调器宽度与最大可用项目宽度相同
我意识到,即使我使用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”