TextInputLayout クラスの問題に関しては、この型は androidx では利用できないため、依存関係をインポートする必要があります。
implementation 'com.google.android.material:material:1.0.0'
使用:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/text_account"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/TextInputLayoutTheme"
app:hintTextAppearance="@style/TextInputLayoutTheme" //提示语的样式
app:errorTextAppearance="@style/TextInputLayouteErrMsg" //错误提示的样式
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberPassword"
android:imeOptions="actionDone"
android:lines="1"
android:singleLine="true"
android:hint="@string/please_enter_password"
/>
</com.google.android.material.textfield.TextInputLayout>
TextInputEditText と組み合わせて使用すると、スムーズなユーザー エクスペリエンスを実現できます。Edittext にフォーカスがあると、ヒントが自動的に表示され、ユーザー エクスペリエンスが向上します。
しかし、これほど素晴らしい効果があるのですが、最も面倒なことは、TextInputLayout のヒント テキストと最後の行の色を変更する方法です。
上記のコードの赤い部分に注意してください。これは非常に重要です! TextInputLayout を変更するときは、スタイルではなくテーマを変更することを忘れないでください。
最初の TextInputLayout の EditText がフォーカスを取得すると、テキストと色にテーマが使用されます
android:theme="@style/TextInputLayoutTheme"
<style name="TextInputLayoutTheme" >
<item name="android:textColor">@color/colorPrimaryDark</item>
<!-- <item name="android:textSize">16sp</item>-->
<!-- 底部线 默认颜色 -->
<item name="colorControlNormal">@color/colorPrimaryDark</item>
<!-- 底部线 EditText激活时颜色 -->
<item name="colorControlActivated">@color/colorAccent</item>
</style>
クリックしてログインすると、最初の入力ボックスは空ではないと判断され、パフォーマンスは次のようになります。
app:errorTextAppearance="@style/TextInputLayouteErrMsg"
コード内の表示フォームがエラーになっているため、以下を参照してください。
text_account.setError("账号不能为空");
この時点で、誰もが自由にさまざまな色に適応できるようになり、製品姉妹が引き起こすバグを心配する必要はなくなりました。。。。。