Используя AppCompatSpinner
, он поставляется со значком вниз по умолчанию.
Необходимо изменить на
android:background="@null"
скроет значок по умолчанию, а затем добавив рядом значок, вы получите интерфейс пользователя:
фрагмент макета:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="@dimen/spinner_width"
android:layout_height="@dimen/pinner_height"
android:dropDownWidth="@dimen/dropdown_width"
android:spinnerMode="dropdown"
android:textSize="16sp"
android:layout_toLeftOf="@id/spinner_icon"
android:background="@null"
/>
<ImageView
android:id="@+id/spinner_icon"
android:layout_width="@dimen/more_options_size"
android:layout_height="@dimen/options_size"
android:layout_alignParentBottom="true"
android:src="@drawable/ic_more_vert_black_24dp"
android:background="?attr/selectableItemBackground"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
/>
</RelativeLayout>
, но нажатие на три точки не вызывает раскрывающийся список параметров счетчика.
, поэтому необходимо подключите обработчик щелчка на трех точках и назовите AppCompatSpinner.performClick()
:
val options = findViewById<View>(R.id.spinner_icon)
options.setOnClickListener{
theSpinner.performClick() //callOnClick()
}
, он работает, но не уверен, есть ли лучшее или более простое решение для изменения значка счетчика? или если у этого подхода есть какой-то побочный эффект?