我有一个AppCompatEditText
内部TextInputLayout
并从字符串资源中设置提示。
<string name="company_name">Companyname <font fgcolor='#FF0000'>*</font></string>
恒星的颜色不会变为红色。
这就是我所得到的。
我想要的(在photoshop中编辑)
我尝试使用带有图像的drawableEnd,但AppCompatEditText的宽度为&#34; match_parent&#34;。所以它最后显示出来。我不是那样的。有没有办法做到这一点。
更新:
试过这个:
company_name.setHint(Html.fromHtml("<small><i>" + "Text Hint Here" + "</i><font color=#FF0000>*</font></small>"));
这就是我得到的。旧的提示不会被新的提示所取代。这两个提示都在显示。
答案 0 :(得分:2)
change edittext hint color :-
android:backgroundTint="@color/colorAccent"
TextInputLayout
android:textColorHint="#707E90"
....................................................
<android.support.design.widget.TextInputLayout
android:id="@+id/txt_usemail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="#707E90">
<EditText
android:id="@+id/et_usemaill"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:backgroundTint="@color/colorAccent"
android:hint="@string/res_email"
android:inputType="textEmailAddress"
android:textColor="@color/textcolor" />
</android.support.design.widget.TextInputLayout>
.............................................................
答案 1 :(得分:1)
在某种程度上可能......
这是我的发现
Html/Spannable
Floating
文字上的 TextInputEditText
无效。
txt_usemail.setHint(Html.fromHtml("<font color=\"#707E90\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
Html/Spannable
TextInputLayout
提示无效。
txt_usemail.setHint(Html.fromHtml("<font color=\"#707E90\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
Html/Spannable
TextInputEditText
正在运作。
et_usemaill.setHint(Html.fromHtml("<font color=\"#707E90\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
现在,问题在于setHint()
上的TextInputEditText
(如第3点),那么Floating
文字将无效。
要使用Floating
文字,我们需要setHint()
上的TextInputLayout
以下是使用EditText
焦点/散焦
final TextInputLayout txt_usemail = findViewById(R.id.txt_usemail);
final TextInputEditText et_usemaill = findViewById(R.id.et_usemaill);
et_usemaill.setHint(Html.fromHtml("<font color=\"#707E90\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
et_usemaill.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (et_usemaill.getText().toString().equals("")) {
if (hasFocus) {
et_usemaill.setHint(null);
txt_usemail.setHint(Html.fromHtml("<font color=\"#c5c5c5\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
} else {
// Remove Glitch/Smooth Animation
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
txt_usemail.setHint(null);
et_usemaill.setHint(Html.fromHtml("<font color=\"#707E90\">" + "Companyname" + "</font>" + "<font color=\"#FF0000\">" + "*" + "</font>"));
}
}, 200);
}
}
}
});
式
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#c5c5c5</item>
<item name="colorControlHighlight">#c5c5c5</item>
</style>
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@android:color/holo_red_dark</item>
<item name="android:textSize">12sp</item>
</style>
布局
<android.support.design.widget.TextInputLayout
android:layout_marginTop="56dp"
android:id="@+id/txt_usemail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
android:textColorHint="@android:color/holo_red_dark"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/et_usemaill"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:inputType="textEmailAddress"
android:textColor="@color/white" />
</android.support.design.widget.TextInputLayout>
结果 -
答案 2 :(得分:0)
是的,可以更改TextInputLayout的提示颜色。喜欢这个
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:theme="@style/textinputlayout">
<android.support.v7.widget.AppCompatEditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Company Name"
android:id="@+id/edit_id"/>
</android.support.design.widget.TextInputLayout>
在样式文件夹
中创建textinputlayout文件<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/Color Name</item>
<item name="android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/Color Name</item>
<item name="colorControlNormal">@color/Color Name</item>
<item name="colorControlActivated">@color/Color Name</item>
</style>
设置为应用程序的主题,它只能突出显示状态
<item name="colorAccent">@color/Color Name</item>
注意:api 16或更低版本不支持此解决方案。为此,您需要这样做:
要更改底线颜色,您可以在应用主题中使用它:
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/accent</item>
<item name="colorControlHighlight">@color/accent</item>
更改浮动标签颜色
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/main_color</item>
并使用它:
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
android:textColorHint="#c1c2c4">
希望这有帮助。
答案 3 :(得分:0)
尝试使用名为Spanny的库。借助于此,我们可以包含并可以自定义具有不同颜色,字体大小,字体样式和更多内容的每个字符。它可以用来设置提示以及设置文本。
这是图书馆Spanny
的链接Spanny spanny = new Spanny("Underline text", new UnderlineSpan())
.append("Company Name ")
.append("*", new ForegroundColorSpan(Color.RED));
您可以通过以下方式设置该Spanny对象:
textView.setHint(spanny);
或者这个:
textView.setText(spanny);
希望它有所帮助。
答案 4 :(得分:0)
只需为
设置提示
--- <com.google.android.material.textfield.TextInputLayout>
包含
------ <EditText>
在您的代码中
代码(科特琳):
your_til_id.hint = Html.fromHtml(getString(R.string.your_hint_str)+ "<font color='red'>*</font>")
布局:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/your_til_id"
android:layout_width="0dp"
android:layout_height="wrap_content">
<EditText
android:id="@+id/your_et_id"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>