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

Che*_*eng 52 android

我意识到即使我使用wrap_content我的微调器(我避免使用,match_parent因为我不希望旋转器过长),并使用match_parent旋转器的项目视图和下拉项目视图,

我仍然发现微调器的宽度与最大项目的宽度不同

在此输入图像描述

如你所见,这UnitedKingdom是不合适的.

所以,如果我选择了UnitedKingdom,只有微调器会调整大小

在此输入图像描述

即使没有明确选择最大的项目,如何使微调器调整到最大可用项目宽度?

我的微调器XML是

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp" /> 
Run Code Online (Sandbox Code Playgroud)

和我的微调器的观点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" />
Run Code Online (Sandbox Code Playgroud)
<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" />
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 16

您应该能够通过指定下拉列表的宽度来获得所需的效果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" />
Run Code Online (Sandbox Code Playgroud)

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

  • 这不起作用.我在列表中几乎没有5个项目,它仍然没有根据最大选项调整宽度. (5认同)

Che*_*eng 8

我只是通过使用"解决"问题

<Spinner
    android:id="@+id/country_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="200dp"
    android:layout_marginBottom="10dp" />
Run Code Online (Sandbox Code Playgroud)

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

  • 虽然这是在将下拉列表扩展到原始微调器大小以外的唯一方法,但它在动态值的情况下并不真正有用,因为您必须能够预测行的测量大小. (2认同)

小智 -7

尝试这个:android:layout_width="fill_parent"