2016-09-30 69 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(...)方法,你可以看到如何顯示錯誤。