EditText जोड़ा गया TextInputEditText नहीं है। कृपया इसके बजाय उस वर्ग का उपयोग करने के लिए स्विच करें


92

मैं EditTextअंदर का उपयोग कर रहा हूं TextInputLayout, लेकिन समर्थन लाइब्रेरी को 23.2.0 में अपग्रेड करने के बाद, मुझे यह चेतावनी लॉगकैट में मिलती है, नियमित EditTextऔर ए के बीच क्या अंतर है TextInputEditText? मुझे इसके लिए कोई दस्तावेज नहीं मिल रहा है।


मैंने अपनी सहायता लाइब्रेरी को 23.2.1 पर अपग्रेड कर दिया है, लेकिन फिर भी TextInputEditText को मेरे कोड में हल नहीं किया जा सकता है । आपने इसे कैसे हल किया?
एडिजे क्रूसर

जवाबों:


109

मैं यह भी सोच रहा था, डैनियल विल्सन ने दस्तावेज इकट्ठा किया, लेकिन अप्रशिक्षित आंख के लिए इसका ज्यादा मतलब नहीं है। यहाँ यह सब क्या है: "एक्स्ट्रेक्ट मोड" उस प्रकार के दृश्य का उल्लेख कर रहा है, जब अंतरिक्ष बहुत छोटा है, उदाहरण के लिए किसी फ़ोन पर परिदृश्य। मैं Google कीबोर्ड के साथ गैलेक्सी एस 4 का प्रयोग इनपुट विधि संपादक (आईएमई) के रूप में कर रहा हूं।

दृश्यमान IME के ​​बिना लैंडस्केप UI

फ़ोकस के आधार पर (विवरण पर) आप TextInputLayoutसंपादक के बाहर संकेत को आगे बढ़ाने वाली कार्रवाई में देख सकते हैं । यहां कुछ खास नहीं है, यह वही है जो TextInputLayoutकरना चाहिए।

दृश्यमान IME के ​​बिना लैंडस्केप UI

लैंडस्केप UI संपादन खाली नाम फ़ील्ड

नाम का संपादन आप देख सकते हैं कि IME आपको वह संकेत नहीं दे रहा है जो आप संपादित कर रहे हैं।

लैंडस्केप UI संपादन खाली नाम फ़ील्ड

लैंडस्केप UI संपादन रिक्त विवरण फ़ील्ड

विवरण का संपादन आप देख सकते हैं कि IME आपको जो कुछ भी संपादित कर रहा है उसका एक संकेत देता है।

लैंडस्केप UI संपादन रिक्त विवरण फ़ील्ड

एक्सएमएल लेआउट

दो क्षेत्रों के बीच का अंतर अपने प्रकार है EditTextवी.एस. TextInputEditText। यहाँ महत्वपूर्ण बात यह है कि TextInputLayoutइसमें android:hintलिपटे हुए एडिट टेक्स्ट नहीं हैं और यही स्थिति है, जब TextInputEditTextजावा कोड की कुछ पंक्तियाँ बड़ा बदलाव लाती हैं ।

नाम क्षेत्र

<android.support.design.widget.TextInputLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Item Name"
    >
    <EditText
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</android.support.design.widget.TextInputLayout>

वर्णन फ़ील्ड

<android.support.design.widget.TextInputLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Item Description"
    >
    <android.support.design.widget.TextInputEditText
        android:id="@+id/description"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        android:minLines="4"
        android:scrollbars="vertical"
        />
</android.support.design.widget.TextInputLayout>

3
मैंने अपनी सहायता लाइब्रेरी को 23.2.1 पर अपग्रेड कर दिया है, लेकिन फिर भी TextInputEditText को मेरे कोड में हल नहीं किया जा सकता है। आपने इसे कैसे हल किया?
एडीजे क्रूजर

क्या आपके पास डिज़ाइन लाइब्रेरी भी है? यह समर्थन में नहीं है।
ट्वीस्टेरोब 14

1
त्वरित टिप्पणी: डॉक्स के अनुसार, इसके बजाय android:hintसंपत्ति को जाना चाहिए । TextInputEditTextTextInputLayout
12

1
@luxsypher मैंने इसे छोड़ दिया और दूसरे तरीके का उपयोग कर रहा है जो EditText को TextInputLayout में डाल रहा है
Edijae Crusar

1
@ jeet.chanchawat यह एक अपस्टॉक है, इसलिए यह सुरक्षित है। आपको हमेशा सबसे सामान्य प्रकार का उपयोग करना चाहिए जो आपको आवश्यक कार्यक्षमता (= एपीआई) प्रदान करता है। का उपयोग करते हुए TextInputEditTextयूआई के एक कार्यान्वयन विस्तार है।
ट्वीस्टेरोब

34

इसके लिए कोई दस्तावेज नहीं है, लेकिन EditTextएक एकल अतिरिक्त सुविधा के साथ वर्ग एक नियमित है :

इस वर्ग का उपयोग करने से हमें IME में 'अर्क' मोड में एक संकेत प्रदर्शित करने की अनुमति मिलती है।

विशेष रूप से यह सेट करता है EditorInfo.hintText। आप उस TextInputLayoutकक्षा में ध्यान देंगे जहाँ आप संकेत निर्दिष्ट कर सकते हैं और यह बच्चे के EditTextविजेट के भाग के बजाय उपस्थिति है ।

यदि आपको ऐसा करने की आवश्यकता है, तो आपको इसका उपयोग करना चाहिए TextInputEditTextताकि यह आपके द्वारा निर्दिष्ट संकेत जानकारी पर ध्यान देTextInputLayout


2
कोई उदाहरण? मैं पता नहीं तुम क्या सुझाव दे रहे है
behelit

4

वे मूल रूप से एक ही चीज हैं, लेकिन मुझे लगता है कि TextInputEditTextइसमें अधिक विशेषताएं हैं और संभवतः विशेषताएँ हैं। मैं बदल गया TextInputEditTextऔर सब कुछ काम किया और मानक के साथ पहले जैसा ही देखा EditText


मैं पहले से ही TextInputLayout का उपयोग कर रहा हूँ, मैं EditText नामक एक विकल्प के बारे में TextInputEditText
Silvia H

क्षमा करें, मैं TextInputEditText के बारे में बात कर रहा था लेकिन कहा लेआउट। मैंने उत्तर को संपादित किया
निक मोवेन

0

अंतर केवल इतना है कि जब आपका डिवाइस लैंडस्केप मोड में TextInputEditTextहोगा , तो संकेत EditTextदेगा , नहीं।


-3

मुझे यह समस्या थी और मैंने अपनी xml फ़ाइल में इस लाइन को हटा दिया:

android: fitsSystemWindows = "true"

और त्रुटि गायब हो गई।

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