微调器宽度与微调器项目宽度不匹配

时间:2017-11-29 07:11:43

标签: android spinner android-spinner

当我使用400dp这样的特定宽度作为DropDown项目的宽度和spinner宽度时,它会正确匹配。

但当我使用match_parent spinnercustom_spinner_item宽度时,它不匹配?图片可能会给出一个主意enter image description here 我的代码出了什么问题?我希望match_parent使用相同的宽度?

这是我的自定义custom_spinner_item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView"
        android:layout_width="400dp"            // width
        android:layout_height="30dp"
        android:textSize="18dp"
        android:text="wallets"
        android:layout_marginLeft="5dp"
        android:paddingLeft="5dp"
        android:background="#FFFFFF"
        android:textColor="#282727"/>
    <View
        android:layout_width="400dp"
        android:layout_height="1dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:background="#8e8c8c"/>
</LinearLayout>

我的片段

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/appbackground"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:paddingTop="5dp">   

    // some code

   <LinearLayout
        android:id="@+id/dropDownLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@drawable/zxing_roundedbgwhite"
        android:orientation="vertical">
        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="400dp"        // width
            android:layout_height="35dp"
            android:dropDownWidth="400dp"       // width
            android:spinnerMode="dropdown" />
    </LinearLayout>

    // some code

</LinearLayout>

1 个答案:

答案 0 :(得分:4)

最好的方法是通过提供

隐藏Spinner的箭头
android:background="@null"

Spinner

因此该项目将占用Spinner

的整个空间

然后在ImageView中放下箭头,并在Spinner

的右侧对齐
<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:background="@null"
        android:layout_height="35dp"
        android:dropDownWidth="match_parent"
        android:spinnerMode="dropdown" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignEnd="@+id/spinner1"
            android:layout_alignRight="@+id/spinner1" 
            android:src="@drawable/arrow_down"
            android:layout_alignTop="@id/spinner1"
            android:layout_alignBottom="@+id/spinner1"/>
    </RelativeLayout>