TextInputLayout 中的提示与 TextInputEditText 中的提示有什么区别

Nan*_*nPd 3 android android-textinputlayout android-textinputedittext

我在“NullPointerException: Attempt to invoke virtual method 'void android.view.View.getBoundsOnScreen(android.graphics.Rect)' on a null object reference”崩溃日志中发现崩溃,我验证了一些关于这次崩溃的stackoverflow建议。我发现下面的链接建议在 TextInputLayout 中使用提示而不是 TextInputEditText,所以我想知道是什么让它与众不同?

下面的链接显示在TextInputLayout使用提示: SO 谷歌显示在TextInputEditText使用提示: Google_Recommendation

我在 TextInputLayout 和 TextInputEditText 的两个地方都尝试了提示。提示同样在两个地方都运行良好。

我想知道这两种方法有什么区别,哪一种更适合使用。

ism*_*oui 7

在设计支持库TextInputLayout中引入了在EditText或上显示浮动标签TextInputEditText。的EditTextTextInputEditText 必须由包裹TextInputLayout在为了显示浮动标签。

经验法则TextInputLayout应该换行TextInputEditText

你应该在哪里放置提示

根据官方文档

提示应该设置在TextInputLayout 上,而不是EditText 上。如果在 XML 中的子EditText上指定了提示,则TextInputLayout可能仍然正常工作;TextInputLayout将使用EditText 的提示作为其浮动标签。但是,将来修改提示的调用将不会更新TextInputLayout 的提示。为避免意外行为,请在TextInputLayout而不是EditText上调用 setHint(CharSequence) 和 getHint() 。

请注意,这TextInputEditText是 的特殊子类,EditText旨在用作TextInputLayout.

希望它有帮助