如何在自动完成显示的下拉菜单上设置背景颜色?

时间:2019-06-17 20:22:37

标签: android material-design material-components mdc-components material-components-android

当前正在使用材料设计组件和菜单准则来设置“暴露的下拉菜单”项。但是,显示我的自动完成文本视图时,它的背景与其他文本字段的背景不同。

我尝试将TextInputLayout上的boxBackgroundColor属性设置为其他颜色,并修改Autocomplete TextView上的背景。同样,我也很疲倦,看看是否可以修改菜单的弹出主题,但没有运气。

 // In the onCreateView of fragment

        ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), R.layout.dropdown_menu_popup_item, getResources().getStringArray(R.array.down_payment_method_selection));
        monthsAtEmploymentSelection.setAdapter(adapter);

<com.google.android.material.textfield.TextInputLayout
                style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginEnd="8dp"
                android:hint="@string/months_at_employment_hint"
                app:boxBackgroundColor="@color/white">

                <AutoCompleteTextView
                    android:id="@+id/months_at_employment_selection"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

            </com.google.android.material.textfield.TextInputLayout>
<!--dropdown_menu_popup_item.xml-->
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:ellipsize="end"
    android:maxLines="1"
    android:textAppearance="?attr/textAppearanceSubtitle1"
    android:background="@color/white"/>

我希望背景是透明的,或者匹配设置为白色的当前背景。当前是灰白色,与字段不匹配。

Example of color problems when using extended dropdown menu style

3 个答案:

答案 0 :(得分:0)

您使用style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"作为AutoCompleteTextView中的样式。

style.xml 中的浅灰色更改为您的特定颜色。

答案 1 :(得分:0)

通过在布局文件的TextInputLayout字段中设置属性app:boxBackgroundColor="@color/yourcolor",可以正确修改背景颜色。

您可能还需要设置子元素android:background="@null"(在我的情况下为AutoCompleteTextView)才能正确使用 boxBackgroundColor 属性。对于documentation,您唯一需要设置子元素背景色的时间是使用 edittext 字段,但是由于应用桥的设置方式,我发现我需要使用自动完成视图。

答案 2 :(得分:0)

感谢this issue,我了解到可以通过编程方式完成:

file.txt
/path/folder/file.txt
file.TXT