【问题标题】:Spinner with error in AndroidAndroid 中出现错误的微调器
【发布时间】:2017-02-09 02:28:05
【问题描述】:

我正在使用新样式的 Spinner

Base.Widget.AppCompat.Spinner.Underlined

在我选择选项时,我可以看到下划线,并且该线以强调色显示。

问题是我找不到一种方法来显示带有红色下划线的错误,例如 Google 对其所有应用的出生日期所做的那样。

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

有没有办法不使用第三方MaterialSpinner库?

【问题讨论】:

    标签: android spinner


    【解决方案1】:

    首先:您在设备上创建新的 Google 帐户时看到的不同页面只是 WebView。所以他们没有使用原生组件/小部件。

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

    这是这种方法的关键:它看起来不像您示例中的错误消息或 TextInputLayout 的错误消息。
    所以为了达到想要的效果,你必须使用第三方库或者自己实现。

    进一步说明:如果您查看 MaterialSpinner 库的 source code,您会发现它扩展了 AppCompatSpinner 类并添加了其他方法,例如您的 setError 方法我提到过。如果您查看onDraw(...) 方法,您可以看到错误是如何显示的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多