Я думаю о создании диалогового окна с одним списком выбора, но я не уверен, возможно ли отобразить три кнопки по горизонтали, а вместо текста показать кнопки.
Это невозможно, и реализация в любом случае может отличаться для разных версий ОС или производителей.
Вы захотите создать свой собственный макет xml и создать собственный DialogFragment, который раздувает ваш макет xml в DialogFragment.onCreateView()
.
dialog_color_button_picker. xml
<LinearLayout>
... however you want to do your layout ...
</LinearLayout>
ColorButtonPickerDialog.kt
class ColorButtonPickerDialog: DialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val rootView = inflater.inflate(R.layout.dialog_color_button_picker, container, false)
}
}
В пределах ColorButtonPickerDialog.onCreateView()
затем вы можете ссылаться на ваши взгляды по идентификатору и добавлять слушателей, как если бы вы использовали обычный фрагмент.