Android Spinner:如何匹配父项并将下拉列表附加到底部

Android Spinner: how to match parent and append the dropdown to the bottom

我很难解决这个问题。

正如您在这些图像中看到的那样,我想让下拉列表与其父项(即矩形按钮)匹配,并且如果可能的话,将下拉列表本身附加到微调器的底部。

这是我的 XML。

微调器:

[...]

<Spinner
    android:id="@+id/fuel_types"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/padding_8dp"
    android:paddingLeft="@dimen/padding_5dp"
    android:layout_gravity="start"
    android:gravity="center"
    android:spinnerMode="dropdown"/>

[...]

TextView:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/single_item"
    style="@style/AppTheme.Dark.AddPrice"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="@dimen/text_size_20sp"
    android:textStyle="bold"
    android:ellipsize="marquee"/>

CheckedTextView:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="@style/AppTheme.Dark.AddPrice"
    android:layout_width="match_parent"
    android:layout_height="@dimen/add_price_checked_height"
    android:ellipsize="marquee"
    android:paddingBottom="@dimen/padding_5dp"
    android:paddingLeft="@dimen/padding_10dp"
    android:paddingRight="@dimen/padding_10dp"
    android:paddingTop="@dimen/padding_5dp"
    android:singleLine="true"
    android:textColor="@color/white"
    android:textSize="@dimen/text_size_15sp"
    android:textStyle="bold"
    android:background="@color/colorPrimaryLight"
    android:gravity="center"
    android:textAlignment="gravity"/>

现在我的 Spinner 的当前外观:

这就是我想要获得的(也许下拉菜单也有圆角):

有什么提示吗?我错过了什么吗?

除了 kris larson 的评论外,我还建议在 17 岁以上的 API 上使用此属性:

android:dropDownVerticalOffset="@dimen/dropdown_vertical_offset"

只需创建两个不同的布局 XML。