一、EditText 的 Hint
1、基本介绍
-
在 Android 开发中,EditText 的 Hint 用于显示提示文本
-
提示文本当用户没有输入任何内容时显示,输入内容后自动消失
2、基本使用
(1)在 XML 布局文件中设置
- 在 XML 布局文件中设置 Hint
<EditTextandroid:id="@+id/et_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入用户名" />
- 在 XML 布局文件中设置 Hint,同时设置 Hint 颜色
<EditTextandroid:id="@+id/et_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入用户名"android:textColorHint="#FF999999" />
(2)在代码中设置
- 在 Java 代码中设置 Hint 与 Hint 颜色
EditText etUsername = findViewById(R.id.et_username);etUsername.setHint("请输入用户名");
etUsername.setHintTextColor(0xff999999);
- 在 Kotlin 代码中设置 Hint 与 Hint 颜色
val etUsername = findViewById<EditText>(R.id.et_username)etUsername.hint = "请输入用户名"
etUsername.setHintTextColor(0xff999999.toInt())
二、Hint 进阶用法
- 使用样式,可以在
values/styles.xml
文件中定义 Hint 样式
<!-- 定义 Hint 样式 --><style name="MyEditTextHint" parent="TextAppearance.AppCompat"><item name="android:textColorHint">#FF999999</item><item name="android:textSize">14sp</item>
</style>
<!-- 引用 Hint 样式 --><EditTextandroid:id="@+id/et_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入用户名"android:theme="@style/MyEditTextHint" />
- 使用 TextInputLayout 实现浮动的 hint
<com.google.android.material.textfield.TextInputLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="浮动提示"><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
三、单独设置 Hint 的大小
<EditTextandroid:id="@+id/et_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入用户名"android:textColorHint="#FF999999"android:textSize="24sp" />
- 在 Java 代码中设置 Hint 与 Hint 的大小
EditText etUsername = findViewById(R.id.et_username);SpannableString hintText = new SpannableString("请输入用户名");
hintText.setSpan(new AbsoluteSizeSpan(14, true),0,hintText.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);etUsername.setHint(hintText);
- 在 kotlin 代码中设置 Hint 与 Hint 的大小
val etUsername = findViewById<EditText>(R.id.et_username)val hintText = SpannableString("请输入用户名")
hintText.setSpan(AbsoluteSizeSpan(14, true),0,hintText.length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)etUsername.hint = hintText