我正在使用新样式的 Spinner
Base.Widget.AppCompat.Spinner.Underlined
当我选择选项时,我可以看到下划线,并且该线以强调色显示。
问题是我找不到一种方法来显示带有红色下划线的错误,例如谷歌对其所有应用程序的出生日期所做的那样。
要查看该错误,请尝试在任何 Google 应用程序中添加新帐户。它会询问您的出生日期。输入无效日期,然后按下一步。
有没有办法在不使用第三方的情况下做到这一点MaterialSpinner
图书馆?
首先:当您在设备上创建新的 Google 帐户时看到的不同页面只是WebView
。所以他们不使用本机组件/小部件。
默认情况下Spinner
小部件没有设置错误(...) https://developer.android.com/reference/android/widget/TextView.html#setError(java.lang.CharSequence)方法像EditText
(这是从TextView
顺便一提)。因此,要在 Spinner 中显示错误,您必须首先获取当前所选项目的视图并将其转换为 TextView(请参阅这个答案 https://stackoverflow.com/questions/3749971/creating-a-seterror-for-the-spinner).
Note:如果您使用的布局的根元素不是 TextView,则会发生 ClassCastException。
这是这种方法的要点:它不会看起来像示例中的错误消息或TextInputLayout
.
所以为了达到想要的效果你必须使用第三方库或者自己实现。
进一步注意:如果你看一下源代码 https://github.com/ganfra/MaterialSpinner/blob/master/library/src/main/java/fr/ganfra/materialspinner/MaterialSpinner.java of the 材质旋转器 https://github.com/ganfra/MaterialSpinner库你可以看到它扩展了AppCompatSpinner
类并添加其他方法,例如setError
你提到的方法。如果你看一下onDraw(...) https://github.com/ganfra/MaterialSpinner/blob/master/library/src/main/java/fr/ganfra/materialspinner/MaterialSpinner.java#L386方法你可以看到错误是如何显示的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)