錯誤我使用,使其具有新的風格微調與Android的
Base.Widget.AppCompat.Spinner.Underlined
我可以看到下劃線和行的顯示帶有口音的顏色,而我選擇的選項。
的問題是,我無法找到一種方法用紅色下劃線來顯示錯誤,如谷歌確實爲它的所有應用程序的誕生,例如日期。
要查看錯誤,請嘗試在任何Google應用中添加新帳戶。它會詢問你的出生日期。輸入無效日期,然後按下一步。
有沒有辦法做到這一點,而不使用第三方庫MaterialSpinner
?
錯誤我使用,使其具有新的風格微調與Android的
Base.Widget.AppCompat.Spinner.Underlined
我可以看到下劃線和行的顯示帶有口音的顏色,而我選擇的選項。
的問題是,我無法找到一種方法用紅色下劃線來顯示錯誤,如谷歌確實爲它的所有應用程序的誕生,例如日期。
要查看錯誤,請嘗試在任何Google應用中添加新帳戶。它會詢問你的出生日期。輸入無效日期,然後按下一步。
有沒有辦法做到這一點,而不使用第三方庫MaterialSpinner
?
首先:你看,當你創建你的設備上創建新帳戶谷歌不同的頁面只是一個WebView
。所以他們不使用本地組件/小部件。
默認情況下,Spinner
小部件沒有setError(...)方法,如EditText
(順便提一下,它是從TextView
派生的)。因此,爲了在Spinner中顯示錯誤,您必須首先獲取當前選定項目的視圖並將其轉換爲TextView(請參閱this answer)。
注意:如果您使用的根元素不是TextView的佈局,將發生ClassCastException。
下面是這種方法的難題:它不會像在您的示例中的錯誤信息或TextInputLayout
的錯誤消息。
因此,爲了達到預期的效果,您必須使用第三方庫或自行實施。
此外應注意:如果你看看MaterialSpinner庫,你可以看到,它擴展了AppCompatSpinner
類,並添加像你提到的setError
方法的其他方法的source code。如果你看一下onDraw(...)方法,你可以看到如何顯示錯誤。