使用Material ExposedDropdownMenu时出现样式错误

时间:2019-05-24 10:42:24

标签: android material-design

当我尝试使用

@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu 

Android Studio要求我创建样式

<android.support.design.widget.TextInputLayout
        style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Type frais"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginEnd="8dp"
        >

    <AutoCompleteTextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
</android.support.design.widget.TextInputLayout>

我希望在ExposedDropdownMenu中看到一种TextInputLayout样式,但实际上Android Studio要求我创建这种样式

4 个答案:

答案 0 :(得分:1)

第1步:在应用gradle中添加依赖项:

implementation 'com.google.android.material:material:1.1.0'

第2步:更改/修改应用级别的主题。

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

第3步:然后在您的应用中使用材质控件。

 <com.google.android.material.textfield.TextInputLayout
                  style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="District">

                    <androidx.appcompat.widget.AppCompatAutoCompleteTextView
                        android:id="@+id/actDistrict"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />

                </com.google.android.material.textfield.TextInputLayout>

答案 1 :(得分:0)

您可以尝试使用v1.0.0-alpha06吗?该功能可能已在此版本中引入。

1.0.0-alpha06

黑暗主题,公开的下拉菜单,徽章等等!

来源:https://github.com/material-components/material-components-android/releases

答案 2 :(得分:0)

别忘了将implementation 'com.google.android.material:material:<desired version>'添加到您的应用gradle文件中(我曾经是)。

更多信息,您可以参考Getting started with Material Components for Android doc

答案 3 :(得分:0)

更改

    <android.support.design.widget.TextInputLayout
            style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
            ...>

<com.google.android.material.textfield.TextInputLayout      
 style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
         ...>

com.google.android.material.textfield.TextInputLayout包含在Material Components Library中。

enter image description here