2016-09-30 40 views
1

错误我使用,使其具有新的风格微调与Android的

Base.Widget.AppCompat.Spinner.Underlined 

我可以看到下划线和行的显示带有口音的颜色,而我选择的选项。

的问题是,我无法找到一种方法用红色下划线来显示错误,如谷歌确实为它的所有应用程序的诞生,例如日期。

要查看错误,请尝试在任何Google应用中添加新帐户。它会询问你的出生日期。输入无效日期,然后按下一步。

有没有办法做到这一点,而不使用第三方库MaterialSpinner

Screenshot of Google app

回答

1

首先:你看,当你创建你的设备上创建新帐户谷歌不同的页面只是一个WebView。所以他们不使用本地组件/小部件。

默认情况下,Spinner小部件没有setError(...)方法,如EditText(顺便提一下,它是从TextView派生的)。因此,为了在Spinner中显示错误,您必须首先获取当前选定项目的视图并将其转换为TextView(请参阅this answer)。
注意:如果您使用的根元素不是TextView的布局,将发生ClassCastException。

下面是这种方法的难题:它不会像在您的示例中的错误信息或TextInputLayout的错误消息。
因此,为了达到预期的效果,您必须使用第三方库或自行实施。

此外应注意:如果你看看MaterialSpinner库,你可以看到,它扩展了AppCompatSpinner类,并添加像你提到的setError方法的其他方法的source code。如果你看一下onDraw(...)方法,你可以看到如何显示错误。