【问题标题】:Difference between TextInputLayout and TextInputEditTextTextInputLayout 和 TextInputEditText 的区别
【发布时间】:2016-10-16 11:14:32
【问题描述】:

需要知道 TextInputEditText 和 TextInputLayout 之间的实际区别,什么时候应该使用其中之一。

【问题讨论】:

    标签: android android-studio android-widget android-design-library


    【解决方案1】:

    它们是相互补充功能的不同布局。

    • TextInputLayout 扩展了 LinearLayout
    • TextInputEditText 扩展了 EditText

    它们应该像下面这样一起使用:

    <TextInputLayout>
       <TextInputEditText/>
    </TextInputLayout>
    

    官方文档上都有:

    TextInputLayout:

    https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html

    当提示因用户输入文本而隐藏时,包装 EditText(或后代)以显示浮动标签的布局

    TextInputEditText:

    https://developer.android.com/reference/android/support/design/widget/TextInputEditText.html

    EditText 的一个特殊子类,设计用作 TextInputLayout 的子级。

    【讨论】:

      【解决方案2】:

      TextInputLayout 和 TextInputEditText 是不同的。如文档Here 中所述,TextInputLayout 和 TextInputEditText 旨在像以下示例一样使用(来自官方文档)

      <android.support.design.widget.TextInputLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content">
      
      <android.support.design.widget.TextInputEditText
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:hint="@string/form_username"/>
      
      </android.support.design.widget.TextInputLayout>
      

      此外,主要区别在于将TextInputEditText 与EditText 进行比较。当以横向模式查看布局时,TextInputEditText 会提供提示。 TWiStErRob 对此进行了深入的解释。我希望这能回答这个问题。谢谢。

      【讨论】:

        【解决方案3】:

        TextInputLayout 必须包含TextInputEditText 而不是普通的EditText,因为它是专门为在内部使用而设计的。

        如果您将 EditText 而不是 TextInputEditText 添加到 TextInputLayout 中,您将收到警告:

        EditText added is not a TextInputEditText. Please switch to using that class instead.
        

        例如,如果你包裹EditText,在横向模式下,你会得到一个大盒子,但提示不见了。

        TextInputLayout 具有浮动提示、错误标签、字符计数器、密码可见性、动画及其自定义等功能

        【讨论】:

        • 我没有看到这个警告。
        猜你喜欢
        • 2019-02-09
        • 2020-09-28
        • 2017-04-18
        • 1970-01-01
        • 2019-10-22
        • 1970-01-01
        • 2018-10-13
        • 1970-01-01
        • 2018-03-15
        相关资源
        最近更新 更多