Android Spinner:删除文本和下拉图标之间的额外空白区域

问题描述 投票:4回答:6

我有一个微调器,默认情况下,文本和下拉图标之间有额外的空白区域,我真的不喜欢并想删除它。

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

Spinner

android whitespace android-spinner dropdown
6个回答
6
投票

我和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"/>

0
投票

只需将以下属性添加到您的spinner xml元素:

对于API <17:

android:gravity="right"

对于API => 17:

android:gravity="end"

0
投票

快速解决

android:layout_marginStart="-40dp"

根据需要,发挥负利润。在你里面旋转项目xml


0
投票

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


0
投票

使用以下代码进行快速修复

 <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" />

-1
投票

删除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或您的Adapter类应根据您的需要进行定制。

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;
}

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

© www.soinside.com 2019 - 2024. All rights reserved.