Android EditText view Floating Hint in Material Design

前端 未结 10 2138
伪装坚强ぢ
伪装坚强ぢ 2020-12-02 08:13

Does API 21 provide a method to use the following feature:

http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels

I\'m try

相关标签:
10条回答
  • 2020-12-02 08:37

    Android hasn't provided a native method. Nor the AppCompat.

    Try this library: https://github.com/rengwuxian/MaterialEditText

    This might be what you want.

    0 讨论(0)
  • 2020-12-02 08:41

    Floating hint EditText:

    Add below dependency in gradle:

    compile 'com.android.support:design:22.2.0'
    

    In layout:

    <android.support.design.widget.TextInputLayout
        android:id="@+id/text_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
            <EditText
                android:id="@+id/editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="UserName"/>
        </android.support.design.widget.TextInputLayout>
    
    0 讨论(0)
  • 2020-12-02 08:44

    Yes, as of May 29, 2015 this functionality is now provided in the Android Design Support Library

    This library includes support for

    • Floating labels
    • Floating action button
    • Snackbar
    • Navigation drawer
    • and more
    0 讨论(0)
  • 2020-12-02 08:48

    No it doesn't. I would expect this in a future api release, but for now we are stuck with EditText. Another option is this library:
    https://github.com/marvinlabs/android-floatinglabel-widgets

    0 讨论(0)
  • 2020-12-02 08:52

    @andruboy's suggestion of https://gist.github.com/chrisbanes/11247418 is probably your best bet.

    https://github.com/thebnich/FloatingHintEditText kind of works with appcompat-v7 v21.0.0, but since v21.0.0 does not support accent colors with subclasses of EditText, the underline of the FloatingHintEditText will be the default solid black or white. Also the padding is not optimized for the Material style EditText, so you may need to adjust it.

    0 讨论(0)
  • 2020-12-02 08:56

    For an easier way to use the InputTextLayout, I have created this library that cuts your XML code to less than the half, and also provides you with the ability to set an error message as well as a hint message and an easy way to do your validations. https://github.com/TeleClinic/SmartEditText

    Simply add

    compile 'com.github.TeleClinic:SmartEditText:0.1.0'
    

    Then you can do something like this:

    <com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
        android:id="@+id/emailSmartEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:setLabel="Email"
        app:setMandatoryErrorMsg="Mandatory field"
        app:setRegexErrorMsg="Wrong email format"
        app:setRegexType="EMAIL_VALIDATION" />
    
    <com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
        android:id="@+id/passwordSmartEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:setLabel="Password"
        app:setMandatoryErrorMsg="Mandatory field"
        app:setPasswordField="true"
        app:setRegexErrorMsg="Weak password"
        app:setRegexType="MEDIUM_PASSWORD_VALIDATION" />
    
    <com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
        android:id="@+id/ageSmartEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:setLabel="Age"
        app:setMandatory="false"
        app:setRegexErrorMsg="Is that really your age :D?"
        app:setRegexString=".*\\d.*" />
    
    0 讨论(0)
提交回复
热议问题