Android 微调器:删除文本和下拉图标之间多余的白色 Space

Android Spinner: Remove Extra White Space Between Text and Dropdown Icon

我有 一个旋转器,默认情况下,文本和 之间有额外的 white-space下拉图标 我真的不喜欢并且想删除它。

尝试在网上搜索但没有得到任何可以帮助我的东西。这里有谁更早做过吗?

删除 xml

中微调器的填充
<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:padding="0dp"     
    android:id="@+id/my_spinner">

SpinnerAdapter 或您的适配器 class 应根据您的需要进行自定义。

SpinnerAdapter.getView(position, convertView, parent)    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
        return view;
}

更改微调列表项布局中的样式属性

玩过Spinner后自己动手做的。这是非常有效的解决方案。

首先创建一个带有您选择的指示器图像的下拉菜单。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape
        android:shape="rectangle"/>
</item>
<item
    android:width="24dp"
    android:height="24dp"
    android:gravity="right|center_vertical">
    <bitmap
        android:src="@drawable/ic_dropdown"
        android:tint="@color/colorPrimaryDark"/>
</item></layer-list>

然后分配给Spinner的背景。

<Spinner
        android:id="@+id/basket_spinner_item_quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:spinnerMode="dropdown"
        android:padding="0dp"
        android:background="@drawable/ic_spinner_dropdown"/>

现在,根据您的要求调整微调项的填充和对齐方式。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/simple_spinner_text_quantity"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="25dp"
android:gravity="right"
android:textAlignment="gravity"/>

只需将以下属性添加到微调器 xml 元素即可:

对于 API < 17:

android:gravity="right"

对于 API => 17:

android:gravity="end"

快速修复

android:layout_marginStart="-40dp"

根据需要玩负边距。在你里面微调项目 xml

出于某种原因,给 padding:20dp 解决了我的问题。此外,使用 translationX 的值来调整下拉图标的位置。最后,您可以使用 layout_marginLeftlayout_marginRight 相应地移动整个下拉列表。

使用下面的代码快速修复

 <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="-9dp"
        android:layout_marginTop="10dp"
        android:entries="@array/almanac"
        android:gravity="left"
        android:padding="0dp"
        android:spinnerMode="dropdown"
        android:layout_marginStart="-9dp" />

将重力设置为结束并调整为合适的值:

  android:gravity="end"
  android:paddingEnd="20dp"