答えて
。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:textColor="@color/wallet_holo_blue_light" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text="Name"
android:ems="10"
android:id="@+id/editText2"
android:hint="Placeholder" />
</LinearLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Label">
<android.support.design.widget.TextInputEditText
android:hint="Placeholder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
TextInputEditText
からandroid:hint="Placeholder"
は、ビューがフォーカスされていないTextInputLayout
からandroid:hint="Label"
と同時に表示されていることに注意してください。あなたは、そのラベルを表示したり隠したりするために、あなたのJavaコードでいくつかの余分なチェックをすることができます。または、android:hint="Placeholder"
からTextInputLayout
までのままにしてください。
色を変更するには、にandroid:theme="@style/TextLabel
を使用してテーマを設定し、色のアクセントを設定する必要があります。
<style name="TextLabel" parent="TextAppearance.AppCompat.Light">
<item name="colorAccent">@color/yourColor</item>
</style>
textinputlayoutを使用してedittextのフォーカスを使用した場合、プレースホルダは取得されませんでした。
レイアウト:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/username_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
あなたがのEditTextのフォーカス変更のリスナーを設定する必要があります。
のJava:
usernameTxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
usernameTxt.setHint("Label");
} else {
usernameTxt.setHint("Placeholder");
}
}
});
あなたがTextInputLayout
とEditText
を使用してこれを行うことができます。ここで
はあなたのXMLです:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Label">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
1.常にそのヒントLabel
を表示するTextInputLayout
に属性android:hint="Label"
を追加します。
2.はプログラムEditText
がフォーカスを取得する場合にのみEditText
ヒントPlaceholder
を設定します。
は、あなたの活動の行の下に追加します。
.........
.................
final EditText editText = (EditText) findViewById(R.id.edit_text);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
editText.setHint("Placeholder");
} else {
editText.setHint("");
}
}
});
.........
..................
をOUTPUT:
これが役立つことを願っています〜
あなたはkotlinに次のコードを(使用することができます)。重複するヒントとプレースホルダを避けるために、200ミリ秒の遅延の後にプレースホルダが表示されます。
class PlaceholderEditText : TextInputEditText {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
private val placeholder = hint
init {
hint = ""
onFocusChangeListener = OnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
postDelayed({ hint = placeholder }, 200)
} else {
hint = ""
}
}
}
}
、その後、レイアウトXMLクラスで
:<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="ALWAYS VISIBLE LABEL">
<com.myapp.widget.PlaceholderEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="DISAPPEARING PLACEHOLDER" />
</android.support.design.widget.TextInputLayout>
- 1. Android - EditTextがラベルとテキストフィールドとして動作する方法
- 2. TextInputLayout浮動ラベルの重力
- 3. 角オートコンプリートエラーメッセージ(浮動ラベルなし)
- 4. IE6浮動ラベル
- 5. 異なる子ビューを持つAndroidリストビュー
- 6. 異なる背景を持つAndroidボタン
- 7. 異なる列ラベルを持つデータフレームを追加/削除する
- 8. フォーム上の浮動ラベルとDivs
- 9. のAndroidのEditTextパスワード、ラベルgravitiy RTL
- 10. Android:2つの異なるビューを持つ効率的なアダプタ
- 11. Android:異なるタイトル名とランチャー名を持つ
- 12. 全体的なラベルと異なるフォントサイズのラベルを持つGoogleマップのプロットされたプロット
- 13. のAndroidのEditText奇妙な白浮きボックスカーソルの下
- 14. Android浮動キーボード
- 15. 異なるディレクトリにあるソースファイルとオブジェクトファイルを持つ自動makefile
- 16. Android:同じIDを持つ要素を持つ異なるレイアウト - 動作しますが、なぜですか?
- 17. Android - カスタムビュー - 上にビューを持つEditTextを拡張する
- 18. 空白と塗りつぶしの異なる背景EditText
- 19. Android:数字の浮動キーボードが10インチタブレットのEditTextをブロックします
- 20. EditTextとFloating Buttonを持つToolBar
- 21. 1つのラベルに異なるフォント
- 22. アイコンとメインアクティビティのラベルがAndroid 7で異なる
- 23. 異なる行の型を持つCustomAdapter
- 24. Android - 非浮動ツールバー
- 25. AndroidでEditTextの異なる色と幅を定義する方法
- 26. 最小幅とマージンを持つCSS浮動小数点
- 27. Android EditTextとaddTextChangedListener
- 28. Androidフィルターリストビューとedittext
- 29. inputTypeを持つAndroid EditTextフィールドnumberDecimalデフォルト値を設定します
- 30. 複数の異なるフラグメントタイプを持つAndroid BaseFragmentクラス
は、ラベルを維持し、焦点の合っていない状態でのスクリーンショットのようにプレースホルダする方法はありますか? –
はい可能です。親とコンテナのレイアウトには 'android:focusableInTouchMode =" true "'を使います。 – FAT