MaterialAlertDialogBu​​ilder 与自定义项

时间:2021-04-14 09:54:50

标签: android kotlin material-design

我需要使用 MaterialAlertDialogBuilder

实现这样的列表

enter image description here

但我不明白如何根据列表项的值为颜色点着色。

我是这样实现的:

itemView.configuration_selector.setOnClickListener {
                    MaterialAlertDialogBuilder(itemView.context, R.style.DialogTheme)
                        .setTitle(getFilterName(name, itemView.context))
                        .setItems(filterValue.toTypedArray()) { dialog, which ->
                            filterSelected[name] = if (filterValue[which] == itemView.context.getString(R.string.common_select)) {
                                null
                            } else {
                                filterValue[which]
                            }
                            if (name == PotFilterEnum.COLOR) colorSelected = which
                            itemView.configuration_selector.text = filterValue[which]
                            click(filterValue[which])
                            filterPot(plantName, plantFamily)
                            dialog.dismiss()
                        }
                        .show()
                }
    <!-- MATERIAL DIALOG -->
    <style name="DialogTheme" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <item name="materialAlertDialogTitleTextStyle">@style/DialogTitleTextStyle</item>
        <item name="materialAlertDialogBodyTextStyle">@style/DialogBodyTextStyle</item>
    </style>

    <style name="DialogTitleTextStyle" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:fontFamily">@font/montserrat_bold</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">20sp</item>
    </style>

    <style name="DialogBodyTextStyle" parent="MaterialAlertDialog.MaterialComponents.Body.Text">
        <item name="android:textSize">16sp</item>
        <item name="android:fontFamily">@font/montserrat_regular</item>
        <item name="drawableLeftCompat">@drawable/item_dot</item>
        <item name="drawableTint">@color/colorAccent</item>
    </style>

0 个答案:

没有答案
相关问题