私はこれらの行で何かを作ろうとしています:
Android:hint="Email Address"
を使用してヒントを表示できますが、ヘルパーテキストを表示できません-これがメールのユーザー名になります
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:id="@+id/et_username"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ems="15"
Android:hint="Username"
app:et_helper="Username is preferably your registered email"/>
</Android.support.design.widget.TextInputLayout>`
ユーザー名は、edittextの下に登録されている電子メールであることが望ましいです。
出力:
どんなポインタでも大歓迎です。ありがとうございました。
最善の方法は、TextInputLayout
を使用することです。 Googleは新しいデザインライブラリでそれを導入しました。 TextInputLayoutを使用するには、build.gradle依存関係に以下を追加する必要があります。
compile 'com.Android.support:design:22.2.0'
次に、それをxmlファイルで使用します。
<Android.support.design.widget.TextInputLayout
Android:id="@+id/textInputLayout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<EditText
Android:id="@+id/editText"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:hint="Enter your name"/>
</Android.support.design.widget.TextInputLayout>
エラーをtrueに設定すると、テキストを設定できます。ただし、エラーを表示するためのものですが、使用に適しています。必要に応じて、色や書体を変更できます。
TextInputLayout til = (TextInputLayout) findViewById(R.id.textInputLayout);
til.setErrorEnabled(true);
til.setError("You need to enter a name");
Design Support Library 28では、組み込みのヘルパーテキスト機能がTextInputLayoutに追加されています。
implementation 'com.Android.support:design:28.0.0'
次に、xmlを使用して、またはプログラムでエラーを有効にします
textInputLayout.isHelperTextEnabled=true
textInputLayout.error="Email can not be Empty!!!"
また、ヒントとエラーを一緒に使用できるようになりました!!!
例
et.setOnFocusChangeListener { v, b ->
if (b) {
textInputLayout.helperText = "yourhelperText"
} else {
textInputLayout.helperText = null
if(et.text.toString()==""){ // or any other validation
textInputLayout.error="Email can not be Empty!!!"
}
}
[〜#〜] edit [〜#〜]xmlまたはプログラムでエラーとhelperTextを有効にすることを忘れないでください。
ヘルパーテキストはTextInputLayoutでは提供されません。ただし、以下の記事にはその実例があります。このクラスは、TextInputLayoutから拡張されたクラスを使用して、クラスに別のインジケーターとしてHelperTextを追加し、ErrorTextと連携して機能します。
https://medium.com/@elye.project/material-login-with-helper-text-232472400c15#.vm28p662v
だからあなたが欲しいのはこれです:
このライブラリを使用してこれを実現できます。
https://github.com/rengwuxian/MaterialEditText
「ヘルパーテキスト」属性を設定して行の下にテキストを表示し、「ヒント」を設定して行の上にテキストを表示できます。以下は添付画像のサンプルレイアウトです
<com.rengwuxian.materialedittext.MaterialEditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Password"
Android:inputType="textPassword"
app:met_floatingLabel="normal"
app:met_helperText="Must contain at least 8 characters"
app:met_helperTextAlwaysShown="true"/>
同様の質問をしました ここ 。 LinearLayoutで2つのEditTextビューを垂直に閉じたままにしたい場合は、方法がないと思います。私が思う1つの方法は、上部のEditTextのAndroid:gravityを「bottom」に設定し、「top」を下部のEditTextに設定できることです。しかし、RelativeLayoutでは、これは簡単なはずです。
TextInputLayoutは、ユーザーが入力しているときでも(EdiTextの上に)ヒントテキストを表示したい場合に使用できます。通常、ヒントをEditTextに設定しても、この方法では機能しません。ヒントテキストは、ビューにタッチしてフォーカスを当てると消えます。