java - 自定义微调器下拉箭头

标签 java android android-spinner

我有以下布局 XML:

<android.support.v7.widget.AppCompatSpinner
            android:id="@+id/content_spinner"
            style="@style/Widget.AppCompat.Spinner.Underlined"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:entries="@array/books"
            android:spinnerMode="dropdown"
            android:theme="@style/large_spinner"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

@style/large_spinner 看起来像这样:

 <style name="large_spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
        <item name="android:textColor">@color/nearlyBlack</item>
        <item name="android:textSize">30sp</item>
        <item name="android:drawableRight">@drawable/ic_menu_camera</item>
    </style>

这给了我旋转器右侧的相机图标,这是我想要的。然而,当我放下微调器时,图标出现在每个项目上,这是我不想要的。我只想将图标放在微调器的右侧,而不是在每个项目中。

我怎样才能实现这个目标?

最佳答案

试试这个

<android.support.v7.widget.AppCompatSpinner
    android:id="@+id/content_spinner"
    style="@style/Widget.AppCompat.Spinner.Underlined"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:background="@drawable/test"
    android:entries="@array/books"
    android:spinnerMode="dropdown"
    android:theme="@style/large_spinner"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

android:background="@drawable/test"

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape>
                    <solid android:color="@android:color/white" />
                    <corners android:radius="4dp" />
                    <padding android:left="8dp" />
                </shape>
            </item>

            <item  android:gravity="left|bottom" android:drawable="@drawable/ic_menu_camera" />

        </layer-list>
    </item>
</selector>

style name="large_spinner"

<style name="large_spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
    <item name="android:paddingStart">0dp</item>
    <item name="android:paddingEnd">0dp</item>
    <item name="android:textColor">@color/nearlyBlack</item>
    <item name="android:textSize">30sp</item>
</style>

关于java - 自定义微调器下拉箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628135/

相关文章:

java - 如何将默认的 .ivy2 缓存目录更改为其他目录?

android - 如何在 TextView 下方正确显示弹出菜单,类似于 Spinner?

java - 如何在 GWT 中检查时间戳的正则表达式?

java - 在两个线程之间同步单个方法

android - 从小部件获取 SCREEN_ON 和 SCREEN_OFF Intent

Android:如果图像不存在,返回 createFromPath 方法是什么?

android - 在 Android 的 Spinner 中关闭下拉菜单

java - 如何在 Android 中跟踪有关 fragment 的信息

java - SQL : Batching statements with bound variables

android - 如何获取媒体uri的绝对文件路径