Android / Spinner:删除箭头右侧的填充

时间:2018-05-08 14:55:59

标签: android android-layout layout spinner padding

我在相对布局中使用了一个带有几个其他布局元素的微调器(layout-v21):

My spinner

<Spinner
android:id="@+id/spinner"
android:layout_width="155dp"
android:layout_height="34dp"
android:layout_alignBottom="@+id/textList"
android:layout_alignTop="@+id/textList"
android:layout_alignParentEnd="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="0dp"
android:layout_toEndOf="@+id/textList"
android:paddingRight="1dp"/>

设置父布局结束的距离:

android:layout_marginRight="0dp"
android:layout_alignParentEnd="true"

这设置了微调器内的选项可以接近箭头左侧的距离(文本右边的填充):

android:paddingRight="1dp"

但有没有办法摆脱(或至少缩小)箭头的所需的空间/填充,但仍然在微调器布局元素内(所以我可以然后在左边使用更多的空间而不改变微调器的大小)?

这就是我所说的:

enter image description here

编辑:这里是RelativeLayout的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.mycompany.myapp.MainActivity"
android:backgroundTint="#000000"
android:focusableInTouchMode="true">

1 个答案:

答案 0 :(得分:3)

对我有用:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:backgroundTint="#000000"
android:focusableInTouchMode="true">

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="155dp"
        android:layout_height="34dp"
        style="@style/spinner_style"
        android:layout_alignParentEnd="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="0dp"
        android:paddingRight="1dp"/>

styles.xml

 <style name="spinner_style">
        <item name="android:layout_height">35dp</item>
        <item name="android:background">@drawable/spinner_bg</item>
</style>

spinner_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape>
                    <gradient android:angle="90" android:endColor="@android:color/white" android:startColor="@android:color/white" android:type="linear" />

                    <stroke android:width="1dp" android:color="@color/colorAccent" />

                    <corners android:radius="0dp" />

                    <padding android:bottom="6dp" android:left="6dp" android:right="6dp" android:top="6dp" />
                </shape>
            </item>
            <item>
                <bitmap android:gravity="center|right" android:src="@drawable/ic_spin_down_arrow" />
            </item>
        </layer-list>
    </item>

</selector>