材质TextInputLayout样式不起作用

时间:2019-01-08 07:27:43

标签: android android-layout material-design

TextInputLayout的材料样式无效。

我在这里遵循了有关材料textinputlayout的文档: https://material.io/develop/android/components/text-input-layout/

<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:hint="@string/app_name"
    app:boxStrokeColor="@android:color/white"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

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

带有gradle:

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

我希望使用OutlinedBox样式,使布局具有轮廓,但它只会显示纯文本输入。

enter image description here

3 个答案:

答案 0 :(得分:1)

看来它不能在预览中工作,我不得不在设备上运行它才能看到真实的输出。感谢@NileshRathod

我希望android可以解决此问题

答案 1 :(得分:1)

将您的 styles.xml Theme.AppCompat.Light.NoActionBar 更改为 Theme.MaterialComponents.Light.NoActionBar

您可以使用以下代码:

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    
</resources>

答案 2 :(得分:0)

在我的假设中,问题是由于Appcompat主题引起的。您必须将其更改为materialCompontents.DayNight。

将style.xml文件更改为这样,

    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

并按如下所示更改您的TextInputLayout代码:

   <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="#252734"
            android:hint="Enter Name" />
    </com.google.android.material.textfield.TextInputLayout>