ibr*_*maz 45 android android-layout
我正在尝试为我的Android应用程序编写新的自定义样式.我需要给风格ERRORTEXT其设置后出现setError在EditText.
我该如何定制它的风格?
例如:我想在style.xml中设置background白色和textColor:蓝色等

She*_*tib 31
解决方案在最后,这是截图:

一些解释
您可以使用以下行设置textcolor
yourEditText.setError(Html.fromHtml("<font color='blue'>this is the error</font>"));
Run Code Online (Sandbox Code Playgroud)
但是,这可能无法保证.
根据源代码,这Popup显示的是ErrorPopup内部类的类型TextView.这Popup是一个TextView膨胀的内容com.android.internal.R.layout.textview_hint
final TextView err = (TextView) inflater.inflate(com.android.internal.R.layout.textview_hint,
null);
Run Code Online (Sandbox Code Playgroud)
这背景Popup取决于它是否应该放在锚点上方:
if (above) {
mView.setBackgroundResource(com.android.internal.R.drawable.popup_inline_error_above);
} else {
mView.setBackgroundResource(com.android.internal.R.drawable.popup_inline_error);
}
Run Code Online (Sandbox Code Playgroud)
由于用于创建弹出窗口的所有android资源都是内部的并且最终是硬编码的,因此最好的方法是创建自己的错误弹出窗口.这将是非常容易的,你不会真的干扰正常,EditText因为默认弹出窗口仅用于显示错误,因此,创建自己的将是好的.
解
我在这里创建了它:WidgyWidgets
Dhe*_*.S. 17
我不认为你可以自定义它的样式,因为错误弹出使用内部样式:
mPopupInlineErrorBackgroundId = getResourceId(mPopupInlineErrorBackgroundId,
com.android.internal.R.styleable.Theme_errorMessageBackground);
mView.setBackgroundResource(mPopupInlineErrorBackgroundId);
Run Code Online (Sandbox Code Playgroud)
但是,您可以Spanned使用重载设置和自定义错误图标setError(CharSequence, Drawable).
您可以轻松地Spanned使用HTML 创建fromHtml().
但是,您仍然无法设置弹出背景图像:-(
Sac*_*ora 10
如果编辑文本字段为空,请在表单验证时添加.
int ecolor = R.color.black; // whatever color you want
String estring = "Please enter a valid email address";
ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
edtEmail.requestFocus();
edtEmail.setError(ssbuilder);
Run Code Online (Sandbox Code Playgroud)
当您编辑编辑文本时,错误标志自动关闭
谢谢萨钦
| 归档时间: |
|
| 查看次数: |
48480 次 |
| 最近记录: |