如何在微调器中自定义对话框大小

how to customize dialog size in spinner

这是我微调器的代码

XML代码

 <Spinner
            android:id="@+id/amountContainer"
            android:layout_width="0dp"
            android:layout_height="30dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:background="@drawable/spinner_border"
            android:spinnerMode="dialog"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/amountTitleTV" />

Kotlin 代码

val adapter = ArrayAdapter((this.activity as Context), android.R.layout.simple_spinner_item, entries.toList())
    adapter.setDropDownViewResource(R.layout.amount_picker)
    adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice)

如何设置对话框的宽度?比如页面宽度的 60% 甚至 300dp

无法自定义对话框微调器,但可以使用下拉模式进行自定义,它看起来像对话框微调器。

将此属性添加到 xml 文件中的旋转器,这将为您的旋转器提供完整的宽度

 // this width is for dialog
 android:dropDownWidth="300dp"

//drop down with only work when spinner mode is drop down
android:spinnerMode="dropdown"

通过使用 dropDownVerticalOffset 属性,您可以在微调器和它的下拉菜单之间提供 space。这将有助于看起来像对话框微调器`

 android:dropDownVerticalOffset="@dimen/_2sdp"