in android

设置Android Spinner下拉框三角标位置靠右居中

小结

Android Spinner下拉框一般会有一个向下的三角标,本文记录了如何将这个三角标设置位置靠最右,并居中,使用固定高度。

问题及解决

这里想要达到的效果是在Android Spinner下拉框设置一个外边缘框,并在最右边设置三角标并使其居中,使用固定高度。

首先spinner的具体设置是在styles.xml中进行设置:

    <style name="AppTheme.InputSpinner" parent="Widget.AppCompat.Spinner">
        <item name="android:background">@drawable/input_spinner</item>
        <item name="android:textColor">@color/cfgText</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:fontFamily">@font/roboto</item>
        <item name="android:layout_marginTop">0sp</item>
        <item name="android:layout_marginBottom">5sp</item>
        <item name="android:layout_marginStart">0sp</item>
        <item name="android:layout_marginEnd">0sp</item>
        <item name="android:paddingEnd">30sp</item>
        <item name="android:paddingStart">0sp</item>
        <item name="android:paddingTop">0sp</item>
        <item name="android:paddingBottom">0sp</item>
    </style>

这里的@drawable/input_spinner是一个背景图,设置了外边缘框,并在最右边设置三角标并使其居中,使用固定高度。如下:

<item android:drawable="@drawable/sort_down" android:gravity="end|center_vertical" android:height="30dp"/>

android:gravity="end|center_vertical"设置了三角标靠最右,并居中。
android:height="30dp"设置了固定高度30dp

参考

Stackoverflow: What is the difference between gravity and layout_gravity in Android?
CSDN: 领略千变万化的Android Drawable (二)
CSDN: Android中TextView文字居中与垂直靠左居中

Write a Comment

Comment