#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 похожа на изображение ниже: