小结
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文字居中与垂直靠左居中