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

Posted scruffybear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置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文字居中与垂直靠左居中

以上是关于设置Android Spinner下拉框三角标位置靠右居中的主要内容,如果未能解决你的问题,请参考以下文章

Android开发系列(二十一):Spinner的功能和使用方法以及实现列表选择框

如何修改spinner控件的样式

【android编程】安卓的spinner下拉框怎么做到点击空白处关闭下拉框?

Android Spinner下拉框使用

Android 自定义下拉框的实现 Spinner

自定义Spinner实现选项换行/多行