android - एंड्रॉइड में मल्टीलाइन टेक्स्ट व्यू?




textview tablelayout multiline (13)

मुझे xml में नीचे पसंद आया

<TableRow>
    <TextView android:id="@+id/address1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4" 
        android:singleLine="false"              
        android:text="Johar Mor, Gulistan-e-Johar, Karachi" >
    </TextView> 
</TableRow>

यह multiline लिए काम नहीं कर रहा है, और मैं TableLayout का उपयोग कर रहा हूँ ...

तो गलती क्या मैं यहाँ कर रहा हूँ?


Answers

बस अपने पाठ के अंदर '\ n' डालें ... कोई अतिरिक्त विशेषता आवश्यक नहीं है :)

          <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Pigeon\nControl\nServices"
            android:id="@+id/textView5"
            android:layout_gravity="center"
            android:paddingLeft="12dp"/> 

मैंने ऊपर दिए गए उत्तरों में से एक पर टिप्पणी करने की कोशिश की लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है।
मैंने सोचा कि अगर आप इसका उपयोग करते हैं तो मैं जोड़ दूंगा:

android:inputType="textMultiLine"

फिर दृश्य क्लिक करने योग्य बंद हो जाता है। मैं अपने स्लाइड-ड्रावर मेनू में बहु लाइन टेक्स्टव्यू प्राप्त करने की कोशिश कर रहा था, जिसे स्पष्ट रूप से क्लिकों का जवाब देने की आवश्यकता है।

android:singleLine="false" हालांकि ठीक काम किया।


टेक्स्टव्यू बहु लाइन होगी जब इसे सिंगल लाइन में फिट करने के लिए पर्याप्त जगह नहीं मिलेगी और सिंगलाइन सत्य पर सेट नहीं है।

यदि यह एक पंक्ति में जगह पाता है तो यह बहु रेखा नहीं होगी।


मुझे समाधान पसंद नहीं है जो टेक्स्ट व्यू में लाइनों की संख्या को मजबूर करता है। मैं सुझाव देता हूं कि आप यहां प्रस्तावित समाधान के माध्यम से इसे हल करें । जैसा कि मैंने देखा है कि ओपी भी टेक्स्ट व्यू बनाने में संघर्ष कर रहा है, तालिका और shrinkColumns में उचित shrinkColumns है shrinkColumns वांछित हासिल करने के लिए पास करने का सही निर्देश है।


मेरे लिए समाधानों में से कोई काम नहीं किया। मुझे पता है कि यह इस सवाल का पूरा जवाब नहीं है, लेकिन कभी-कभी यह मदद कर सकता है।

मैंने एक वर्टिकल लाइनरलेआउट में 4 टेक्स्टव्यू डाले।

<Linearlayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation:"vertical"

    ...>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line1"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line2"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line3"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line4"
       .../>
</LinearLayout>

यह समाधान उन मामलों के लिए अच्छा है जो टेक्स्ट व्यू टेक्स्ट स्थिर हैं, लेबल की तरह।


सबसे पहले अपने Html समतुल्य "\n" साथ "\n" को प्रतिस्थापित करें "\n" "&lt;br&gt;" फिर स्ट्रिंग पर Html.fromHtml() को कॉल करें। नीचे दिए गए चरणों का पालन करें:

String text= model.getMessageBody().toString().replace("\n", "&lt;br&gt;")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))

यह पूरी तरह से काम करता है।


लेआउट फ़ाइल में लंबी लाइनें लिखने की बजाय आप स्ट्रिंग क्यों नहीं घोषित करते हैं। इसके लिए आपको लेआउट फ़ाइल 'एंड्रॉइड: टेक्स्ट = "@ स्ट्रिंग / टेक्स्ट" में कोड की एक पंक्ति घोषित करनी है और \\ app \ src \ main \ res \ values ​​\ strings.xml पर जाएं और कोड की एक पंक्ति जोड़ें 'आपका मल्टीलाइन टेक्स्ट' भी किसी भी बिंदु से रेखा को तोड़ने के लिए '\ n' का उपयोग करें, अन्यथा लाइन स्वचालित रूप से समायोजित की जाएगी।


स्क्रॉलव्यू में बस टेक्स्टव्यू जोड़ें

<ScrollView
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="15dp"
           android:layout_marginRight="15dp"
           android:layout_marginTop="20dp"
           android:fillViewport="true">

           <TextView
               android:id="@+id/txtquestion"
               android:layout_width="fill_parent"
               android:layout_height="match_parent"
               android:background="@drawable/abs__dialog_full_holo_light"
               android:lines="20"
               android:scrollHorizontally="false"
               android:scrollbars="vertical"
               android:textSize="15sp" />

       </ScrollView>

मुझे जवाबों में से कोई भी पसंद नहीं है। बस इनपुट टाइप टाइप करें और टेक्स्ट व्यू इसकी सामग्री के अनुकूल होगा

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"/>

नेक्सस वन (2.3) और नेक्सस 4 (4.4) पर परीक्षण किया गया


यदि आप टेक्स्ट TextView में जो पाठ डाल रहे हैं वह छोटा है, तो यह स्वचालित रूप से चार पंक्तियों तक विस्तारित नहीं होगा। यदि आप TextView में टेक्स्ट की लंबाई के बावजूद हमेशा चार लाइनों को रखना चाहते हैं, तो android:lines सेट करें android:lines विशेषता:

<TextView
    android:id="@+id/address1"
    android:gravity="left"
    android:layout_height="fill_parent"
    android:layout_width="wrap_content"
    android:maxLines="4"
    android:lines="4"
    android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."></TextView>

आप टेबलरो के साथ ऐसा कर सकते हैं, नीचे कोड देखें

<TableRow >
        <TextView
            android:id="@+id/tv_description_heading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="8dp"
            android:text="@string/rating_review"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tv_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:maxLines="4"`enter code here`
            android:padding="8dp"
            android:text="The food test was very good."
            android:textColor="@color/black"
            android:textColorHint="@color/hint_text_color" />
    </TableRow>

मैंनें इस्तेमाल किया:

TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);

यह मेरे लिए काम किया। 1 कॉलम की संख्या है।


मल्टीलाइन टेक्स्ट व्यू के लिए मैंने पाया सबसे अच्छा जवाब है:

android:inputType="textMultiLine"

यदि आप बच निकले न्यूलाइन का उपयोग करने के इच्छुक हैं, तो उनका उपयोग अच्छी तरह से किया जा सकता है। यह एक पृष्ठ सीमा के साथ एक दस्तावेज़ की तरह दिखता है







android textview tablelayout multiline