Попробуйте использовать layer-list
bg_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!-- This is the actual spinner background -->
<selector >
<!-- Feel free to use your own drawable for these states -->
<item android:state_window_focused="false" android:drawable="@drawable/bg_border_accent_thin"/>
<item android:state_pressed="true" android:drawable="@drawable/bg_border_accent_thin"/>
<item android:state_window_focused="true" android:state_pressed="false" android:drawable="@drawable/bg_border_grey_thin"/>
</selector>
</item>
<!-- This is the spinner drawable, use your custom drawable aswell. android:right does the magin to separate this drawable from the spinner content-->
<item android:drawable="@drawable/ic_ripple_arrow"
android:gravity="center_vertical|right"
android:right="16dp"/>
</layer-list>
Изменить 02/02/2020
Мои извинения за ланч на выходные .
Если вы используете зависимости androidx
(что я предлагаю вам сделать), вот код, который я использую для правильного добавления расстояния между текстом и выбранным элементом в счетчике.
На вашем макете. xml
<!-- The line I think you need is the one giving padding to the right -->
<androidx.appcompat.widget.AppCompatSpinner
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingRight="36dp"
android:background="@drawable/bg_spinner"
android:popupBackground="@drawable/bg_spinner_popup"/>
bg_spinner.xml
- это тот, который предоставлен несколькими строками выше.
А всплывающее окно на самом деле не не имеет значения, поскольку он дает некоторые указания о том, как рисовать фон, ничего важного, но здесь это так или иначе ...
bg_spinner_popup.xml
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android
android:shape="rectangle">
<corners android:radius="3dp"/>
<solid android:color ="@android:color/white"/>
<stroke android:width="5px" android:color="@color/primaryColor"/>
</shape>