エラーが発生した場合、TextInputLayoutsのフローティングラベルで色を(たとえば赤に)変更します。エラーテキストの色を変更することはできますが、浮動ラベルの外観には影響しません(他のスレッドの主張とは異なります)。エラーのために定義された状態がないように、この問題を解決するためにヒントカラーのセレクタを使用することはできませんでした。誰もが、エラーイベントの変更を手動でプログラムすることなく/(新しいEditTextを親として)新しいJavaクラスを作成することなくこれを行う方法を知っていますか?ここでAndroid:エラー状態のTextInputLayoutのフローティングラベルのヒント(ヒント)を変更しました
は、私が定義されたスタイリングは、以下のとおりです。
<style name="EditTextFloatingLabel" parent="@android:style/TextAppearance">
<item name="android:textSize">@dimen/textsize_caption_small</item>
<item name="android:layout_marginBottom">8dp</item>
<item name="android:textColor">@color/input_text_color</item>
</style>
<style name="EditTextErrorText" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/error_color</item>
</style>
<style name="EditTextLayout">
<item name="android:textColorHint">@color/placeholder_color</item>
<item name="android:background">@drawable/input_field_background</item>
<item name="android:paddingBottom">@dimen/default_margin_bottom</item>
<item name="android:paddingStart">@dimen/default_margin_left</item>
<item name="android:paddingEnd">@dimen/default_margin_right</item>
</style>
<style name="EditTextTheme">
<item name="android:imeOptions">actionDone</item>
<item name="android:maxLines">1</item>
<item name="colorControlNormal">@color/primary_line_color</item>
<item name="colorControlActivated">@color/nordea_blue</item>
<item name="android:colorControlHighlight">@color/error_color</item>
<item name="android:textColorPrimary">@color/input_field_text</item>
<item name="android:textSize">@dimen/textsize_caption</item>
<item name="android:textColorHint">@color/placeholder_color</item>
</style>
<style name="EditText">
<item name="android:theme">@style/EditTextTheme</item>
<item name="android:textCursorDrawable">@drawable/cursor_blue</item>
<item name="android:paddingTop">@dimen/default_padding_top</item>
<item name="android:paddingStart">@dimen/payment_text_input_padding</item>
</style>
使用法:
<android.support.design.widget.TextInputLayout
android:id="@+id/input_field_error_wrapper_light"
style="@style/EditTextLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/testlogin_text_input_end_padding"
android:layout_marginStart="@dimen/testlogin_text_input_start_padding"
android:paddingTop="@dimen/default_padding_top"
app:hintTextAppearance="@style/EditTextFloatingLabel"
app:errorTextAppearance="@style/EditTextErrorText"
app:errorEnabled="true">
<EditText
android:id="@+id/input_field_light_error"
style="@style/EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="#Input Field Disabled Light"
android:imeOptions="actionDone"
/>
</android.support.design.widget.TextInputLayout>
そして、これは私が見たものである。
私の更新の回答を試してください –