Удалить лишние отступы / поля из текста TextInputLayout setError

#android #android-textinputlayout

#Android #android-textinputlayout

Вопрос:

Я использую TextInputLayout для отображения ошибки с EditText. Все работает хорошо. Я должен удалить лишнее пространство из текста ошибки TextInputLayout.

До сих пор я делал это,

 <android.support.design.widget.TextInputLayout
                android:id="@ id/txt_error_passowrd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                app:errorEnabled="true"
                app:passwordToggleEnabled="true"
                app:passwordToggleTint="@color/colorAccent"
                app:errorTextAppearance="@style/error_appearance"
                app:hintTextAppearance="@style/EditHintText">

                <android.support.design.widget.TextInputEditText
                    android:id="@ id/edit_password"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/views_height"
                    android:fontFamily="@font/roboto_light"
                    android:hint="@string/password"
                    android:inputType="textPassword"
                    android:paddingLeft="10dp"
                    android:textColorHint="@color/light_text_color"
                    android:textSize="@dimen/font_14sp" />

            </android.support.design.widget.TextInputLayout>
 

И внутри style.xml Я должен был использовать это

  <style name="EditHintText" parent="TextAppearance.Design.Hint">
    <item name="android:textSize">@dimen/font_10sp</item>
    <item name="android:textColor">@color/dark_text_color</item>
</style>

<style name="error_appearance" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/red</item>
    <item name="android:textSize">@dimen/font_10sp</item>
</style>
 

Я прикрепил снимок экрана. Пожалуйста, помогите

Ответ №1:

Вы можете удалить лишние отступы, используя app:hintEnabled="false" in TextInputLayout . Но его использование предотвратит переход подсказки выше, потому что дополнительное пространство предназначалось для текста подсказки, когда он идет выше.

Ответ №2:

Удалите только эту строку и работайте как шарм android:paddingLeft=10dp

Ответ №3:

Попробуйте удалить эту строку android:paddingLeft= 10dp из TextInputEditText, поскольку в TextInputLayout нет отступов. это дополнение EditText может вызывать проблему. также почему вы используете android:layout_weight=1 для TextInputLayout, когда ни для одной из его высот или ширин не установлено значение 0dp.

Ответ №4:

Для общих случаев TextInputLayout вы можете установить заполнение ошибок следующим образом:

  { your TextInputLayout }.apply {
            viewTreeObserver.addOnGlobalLayoutListener {
                if (childCount > 1) {
                    getChildAt(1)?.let {
                        it.setPadding(
                            yourPaddingStart,
                            yourPaddingTop,
                            yourPaddingRight,
                            yourPaddingBottom
                        )
                    }
                }
            }
        }
 

Как обычно структура TextInputLayout похожа на изображение ниже:

Общая структура TextInputLayout