在textInputLayout中,可绘制和颜色没有改变的错误。

问题描述 投票:0回答:1

所以我使用的是textInputLayout,我需要做的就是为错误图标设置一个自定义的drawable。下面是我的布局和依赖关系

    implementation 'com.google.android.material:material:1.2.0-beta01'
    <com.google.android.material.textfield.TextInputLayout
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="match_parent"
        android:layout_height="@dimen/text_field_height"
        android:layout_margin="@dimen/activity_margin"
        android:hint="@string/insert_name_hint"
        app:boxBackgroundColor="@color/transparent"
        app:boxCornerRadiusBottomEnd="@dimen/text_field_corner"
        app:boxCornerRadiusBottomStart="@dimen/text_field_corner"
        app:boxCornerRadiusTopEnd="@dimen/text_field_corner"
        app:boxCornerRadiusTopStart="@dimen/text_field_corner"
        app:errorEnabled="true"
        app:errorTextColor="?colorAccent"
        app:errorIconDrawable="@drawable/ic_alert_black_24dp"
        app:errorIconTint="?colorAccent"
        app:errorContentDescription="@string/insert_name_hint"
        app:boxStrokeErrorColor="@color/gray"
        app:startIconDrawable="@drawable/ic_cool_black_24dp"
        app:startIconTint="@color/gray"
        app:hintAnimationEnabled="true"
        app:hintTextColor="?colorAccent">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/nameEvent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:imeOptions="actionDone"
            android:maxLength="30"
            android:padding="0dp"
            android:textAlignment="center"
            android:textCursorDrawable="@null"
            android:inputType="textCapSentences"/>

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

基本上,可绘制和色调都不能用,用的是默认的图标和颜色。其余的都能正常工作。我没有用程序设置任何东西。

android layout icons android-textinputlayout
1个回答
0
投票

好吧,这个问题是很基本的,但是我过了一会儿就发现了,这不是一个布局层面的问题,而是一个错误管理的问题。这个错误必须设置在 输入布局 而不是在 输入编辑文本. 所以这就是区别(当然我还得给输入布局加个id)。

之前

customView.nameEvent.error = getString(R.string.invalid_value_name)

之后

customView.nameEventLayout.error = getString(R.string.invalid_value_name)

是的,是 简单。但我认为这可能是一个常见的错误,所以我希望这个答案可以帮助有人在那里。

© www.soinside.com 2019 - 2024. All rights reserved.