Android EditText सामग्री डिजाइन में फ्लोटिंग संकेत देखें


96

क्या एपीआई 21 निम्नलिखित सुविधा का उपयोग करने के लिए एक विधि प्रदान करता है:

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

मैं EditText संकेत तैरने की कोशिश कर रहा हूँ।

धन्यवाद!



मैं अपनी खोज के दौरान भी इसमें भाग गया, लेकिन सोच रहा था कि क्या एंड्रॉइड एक मूल विधि प्रदान करता है।
xsorifc28

1
इससे हमें लगता है कि Android में कुछ गड़बड़ है। सामग्री डिजाइन के लिए एपीआई पर कई लापता अंतराल हैं। एक अन्य उदाहरण फ्लोट एक्शन बटन है।
motobói

जवाबों:


3

आपको अपने मॉड्यूल build.gradle फ़ाइल में निम्न जोड़ना होगा:

implementation 'com.google.android.material:material:1.0.0'

और अपने XML में com.google.android.material.textfield.TextInputLayout का उपयोग करें:

       <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/text_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/my_hint">

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="UserName"/>
   </com.google.android.material.textfield.TextInputLayout>

108

फ़्लोटिंग संकेत

प्रवणता में नीचे निर्भरता जोड़ें:

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

लेआउट में:

<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>

3
इससे सावधान रहें: TextInputLayout उपयोगकर्ता के फोकस पर बग दिखाने से पहले EditText संकेत नहीं दिखा रहा है कि यह डिज़ाइन सपोर्ट लाइब्रेरी में मौजूद है22.2.0
इवान चौ

1
इस XML में EditText और TextInputEditText का उपयोग करने के बीच क्या अंतर है?
Android डेवलपर

2
नए नाम पर निर्भरता प्रतीत होती है implementation 'com.google.android.material:material:1.0.0-rc01'
rmtheis

60

हां, 29 मई, 2015 तक यह कार्यक्षमता अब Android डिज़ाइन समर्थन लाइब्रेरी में प्रदान की गई है

इस लाइब्रेरी के लिए समर्थन शामिल है

  • फ्लोटिंग लेबल
  • फ्लोटिंग एक्शन बटन
  • अल्पाहार गृह
  • नेविगेशन दराज
  • और अधिक

3
क्या आप ओपी के उल्लेख जैसे EditTexts के साथ फ्लोटिंग लेबल के लिए एक ट्यूटोरियल के बारे में जानते हैं?
AdamMc331


1
वाह धन्यवाद! मैं इनके माध्यम से देखूंगा और आपको बताऊंगा कि यह कैसे चलता है!
AdamMc331

2
तीसरा वह था जिसकी मुझे तलाश थी। मैं TextInputLayout पर ठोकर खाई, लेकिन एक अच्छा उदाहरण नहीं मिला (शायद सभी गलत शब्दों को खोज रहा था)। धन्यवाद!
AdamMc331

18

एंड्रॉइड सपोर्ट लाइब्रेरी को निर्भरता में ग्रेडेल के भीतर आयात किया जा सकता है:

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

यह GradlePlease के भीतर शामिल किया जाना चाहिए! और इसका उपयोग करने के लिए एक उदाहरण के रूप में:

 <android.support.design.widget.TextInputLayout
    android:id="@+id/to_text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextViewTo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="To"
        android:layout_marginTop="45dp"
        />
</android.support.design.widget.TextInputLayout>

Btw, एडिटर यह नहीं समझ सकता है कि TextInputLayout के भीतर AutoCompleteTextView की अनुमति है।


11

Android ने मूल विधि प्रदान नहीं की है। और न ही AppCompat।

इस लाइब्रेरी को आज़माएं: https://github.com/rengwuxian/MaterialEditText

यह वही हो सकता है जो आप चाहते हैं।


1
मुझे त्रुटि मिलती है: (1) "एट्रिब्यूट" रंग "को पहले से ही" सिंक सिंक पर परिभाषित किया गया है, शायद एपकॉम-वी 7 के कारण। मैं इससे छुटकारा नहीं पा सकता। एनी सुझाव?
mdzeko 21

MaterialEditText ने "color" नामक विशेषता को परिभाषित नहीं किया है, इसलिए यह कहीं और गलत होना चाहिए।
रेंगवेक्सियन

9

समर्थन लाइब्रेरीज़ को आयात करें, अपने प्रोजेक्ट की बिल्ड.ग्रेड फ़ाइल में, प्रोजेक्ट की निर्भरता में निम्न पंक्तियाँ जोड़ें:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
}

अपने UI लेआउट में TextInputLayout का उपयोग करें:

<android.support.design.widget.TextInputLayout
    android:id="@+id/usernameWrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:hint="Username"/>

</android.support.design.widget.TextInputLayout>

से पहले, TextInputLayout पर setHint को कॉल करें, इसके बाद setContentView कॉल करें, क्योंकि फ़्लोटिंग लेबल को चेतन करने के लिए, आपको बस एक हिंट सेट करने की ज़रूरत है, सेटहिंट विधि का उपयोग करके।

final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");

1
कम से कम 23.1.1 का उपयोग करते हुए, आपको एक स्पष्ट कॉल का उपयोग करने की आवश्यकता नहीं है setHint()। यह EditTextलेआउट xml में संकेत के साथ काम करता है ।
आयनोकॉस्ट ब्रिघम

3

@ @ruboy का सुझाव https://gist.github.com/chrisbanes/11247418 शायद आपका सबसे अच्छा दांव है।

https://github.com/thebnich/FloatingHintEditText appcompat-v7 v21.0.0 के साथ काम करता है, लेकिन चूंकि v21.0.0 उपवर्गों के साथ उच्चारण रंगों का समर्थन नहीं करता है EditText, इसलिए अंडरलाइन FloatingHintEditTextडिफ़ॉल्ट डिफ़ॉल्ट काले या सफेद रंग का होगा। इसके अलावा पैडिंग सामग्री शैली के लिए अनुकूलित नहीं है EditText, इसलिए आपको इसे समायोजित करने की आवश्यकता हो सकती है।


धन्यवाद। मैं अनुमान लगा रहा हूँ कि google ने भी सामग्री-शैली के संपादन पाठ चेतावनी बनाने के लिए कोई एपीआई नहीं दिया है, जैसे google.com/design/spec/compenders/… में शौकिया प्रश्नों के लिए क्षमा करें, मैं सामग्री डिज़ाइन के अनुकूल होने की कोशिश कर रहा हूँ जैसा कि मैं Google के एपीआई / पुस्तकालयों का उपयोग कर सकता हूं और उन सभी चीजों का पता लगाने की कोशिश कर रहा हूं जो किसी भी बाहरी पुस्तकालयों के साथ प्रदान की गई हैं। एक बार फिर धन्यवाद!
xsorifc28


0

InputTextLayout का उपयोग करने के एक आसान तरीके के लिए, मैंने यह लाइब्रेरी बनाई है जो आपके XML कोड को आधे से भी कम कर देता है, और आपको एक त्रुटि संदेश के साथ-साथ एक संकेत संदेश और आपकी करने का एक आसान तरीका भी प्रदान करता है। सत्यापन। https://github.com/TeleClinic/SmartEditText

सीधे शब्दों में कहें

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

तो आप इस तरह से कुछ कर सकते हैं:

<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

इस तरह आजमाएं

यहां छवि विवरण दर्ज करें

  dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
  }

अधिक संदर्भ के लिए यहां क्लिक करें


0

सामग्री घटक लाइब्रेरीTextInputLayout द्वारा प्रदान किए गए का उपयोग करें :

    <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Label">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </com.google.android.material.textfield.TextInputLayout>

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.