Android: मल्टी लाइन के लिए वर्टिकल अलाइनमेंट EditText (टेक्स्ट एरिया)


232

मैं पाठ क्षेत्र की ऊंचाई के लिए 5 लाइनें रखना चाहता हूं। मैं निम्नलिखित कोड का उपयोग कर रहा हूं।

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:singleLine="false"
    android:lines="5"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip" />

पाठ क्षेत्र ठीक लग रहा है, लेकिन समस्या यह है कि कर्सर पाठ क्षेत्र के बीच में पलक झपक रहा है। मैं चाहता हूं कि यह पहली पंक्ति में, पाठ क्षेत्र के पहले चरित्र पर पलक झपकाए।


15
अपने गुरुत्वाकर्षण "केंद्र" को हटाने की कोशिश करें, समस्या हो सकती है
सिपाही

जवाबों:



99

यह कॉमन्सवेयर के उत्तर के समान है लेकिन एक मामूली ट्वीक के साथ android:gravity="top|start":। पूरा कोड उदाहरण:

<EditText
    android:id="@+id/EditText02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="top|start"
    android:inputType="textMultiLine"
    android:scrollHorizontally="false" 
/>

8
top|leftतब तक उपयोग न करें जब तक आपको पता न हो कि आप अपने ऐप की सभी भाषाओं को नियंत्रित कर सकते हैं, वहां पर बहुत से दाईं-बाईं भाषाएँ हैं ( en.wikipedia.org/wiki/Right-to-left ) इसे स्थानीयकरण के अनुकूल रखें
MariusBudin

1
@ मारीब्यूडिन संभवतः, top|startसही विकल्प होगा?
प्रतिबंध-जियोइंजीनियरिंग

19

U इस Edittext का उपयोग कर सकता है .... यह आपकी मदद करेगा।

<EditText
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="5"
android:gravity="top|left"
android:inputType="textMultiLine" />


6
<EditText android:id="@+id/EditText02" android:layout_width="120dp"
    android:layout_height="wrap_content" android:lines="5" android:layout_centerInParent="true"
    android:gravity="top|left" android:inputType="textMultiLine"
    android:scrollHorizontally="false" android:minWidth="10.0dip"
    android:maxWidth="180dip" />

यह काम करेगा


3

अब गुरुत्वाकर्षण startका एक दिन सबसे अच्छा उपयोग है :

android:gravity="start"

EditText (textarea) के लिए:

<EditText
    android:id="@+id/EditText02"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="start"
    android:inputType="textMultiLine"
/>

क्या आप इस बारे में कुछ प्रकाश डाल सकते हैं कि यह क्यों काम करता है? मुझे उम्मीद startहै कि मैंने left(पश्चिमी भाषाओं के लिए) काम किया होगा - यानी, केवल क्षैतिज गुरुत्वाकर्षण को प्रभावित करता है, लेकिन यह भी काम करने लगता topहै।
प्रतिबंध-जियोइंजीनियरिंग

हाँ आप सही है। हम मुख्य रूप से आरटीएल के समर्थन के लिए इसका उपयोग कर रहे हैं। जैसे अरबी भाषा में, यह वामपंथ के बजाय राइट पर जाता है। और यह भी जाना है topकि आप पहले से ही पूछा है। आम तौर पर हम टॉप-लेफ्ट साइड से लिखना शुरू करते हैं, इसीलिए यह STARTसमान विशेषताओं को भी दिखाता है। @ प्रतिबंध-जियोइंजीनियरिंग
हसीब अक्टर

2

मुझे लगता है कि आप layout:weight = 5इसके बजाय उपयोग कर सकते हैं android:lines = 5क्योंकि जब आप अपने ऐप को छोटे डिवाइस में पोर्ट करते हैं - यह अच्छी तरह से करता है .. ठीक है, दोनों विशेषताएँ आपके काम को पूरा करेंगी ..

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