2011-03-08 8 views
46

मैं पंक्तियों के साथ एक TableLayout प्रदर्शित कर रहा हूँ में एक TextView में बहु लाइन पाठ का प्रदर्शन:Android और एक TableRow इस प्रकार

<?xml version="1.0" encoding="utf-8"?> 
<TableRow 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/one" 
      android:layout_marginLeft="10dip" 
      android:textColor="#B0171F" /> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/one" 
      android:id="@+id/two" 
      android:layout_marginLeft="10dip" 
      android:ellipsize="none" 
      android:singleLine="false" 
      android:scrollHorizontally="false" 
      android:maxLines="10" 
      android:textColor="@android:color/black" /> 

    </RelativeLayout> 

</TableRow> 

मैं मैं यहाँ पा सकते हैं और के बारे में सोच सकते हैं सब कुछ के साथ इस मार कर रहा हूँ टेक्स्ट को कई लाइनों पर लपेटने की अनुमति दें लेकिन इसका कोई फायदा नहीं हुआ: टेक्स्ट को हमेशा एक लाइन पर मजबूर किया जाता है, स्क्रीन से चल रहा है। इससे कोई फर्क नहीं पड़ता कि मैं यहां एक टेबलरो के अंदर काम कर रहा हूं, और जहां तक ​​मैं यह कह सकता हूं कि इस साइट पर इसका इलाज नहीं किया गया है।

तो, मैं अपने दूसरे टेक्स्ट व्यू को कई पंक्तियों में लपेटने के लिए कैसे मजबूर करूं?

+0

एक टेबलरो बस यही है - एक पंक्ति। मुझे नहीं लगता कि आपको एक पंक्ति पर कई लाइनों को आजमाने और बनाने की ज़रूरत है, जो कि थोड़ी सी बात है। वहाँ TableRow का उपयोग करने का उद्देश्य क्या है? – Klaus

+0

क्या आपने 'एंड्रॉइड: सिंगललाइन =" झूठी "रेखा को हटाने का प्रयास किया था? –

+0

बस अपने कोड को ग्रहण में कॉपी किया गया है, और पाठ सही ढंग से लपेट रहा है, जैसा कि मैं ग्राफिकल लेआउट में देख सकता हूं। (मैंने अभी 'एंड्रॉइड: टेक्स्ट = "(एक लंबा टेक्स्ट)" प्रदर्शित करने के लिए कुछ पाठ जोड़ने के लिए जोड़ा है) – Adinia

उत्तर

92

टेक्स्टव्यू पाठ को लपेट लेगा यदि कॉलम में इसे छोटा करने के लिए सेट किया गया है। कभी-कभी यह ठीक से लपेटता नहीं है, अगर पाठ ", ..." के साथ समाप्त होता है, तो यह बिल्कुल एन लाइनों की तुलना में थोड़ा सा लंबा है।

यहाँ एक उदाहरण है, आईडी question साथ TextView लपेटो जाएगा:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:shrinkColumns="*"> 
    <TableRow> 
     <TextView 
      android:id="@+id/question" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
    </TableRow> 
</TableLayout> 
+0

इसके लिए धन्यवाद। मैं निश्चित रूप से इसे आज़माउंगा (मेरे पास इस परियोजना पर ध्यान देने के लिए कुछ चीजें हैं) और एक उत्तर स्वीकार करने की उम्मीद है। – SK9

+9

@ सभी: 'एंड्रॉइड: shrinkColumns =" ​​0 "' एंड्रॉइड की बजाय मेरे लिए पूरी तरह से काम करता है: shrinkColumns = "1" 'जो मैं कोशिश कर रहा था। मुझे यकीन नहीं है कि आप यही सुझाव दे रहे हैं, लेकिन आपका जवाब ठोस है और मेरी टिप्पणी यहां दिखाई देती है। साथ में उन्होंने मेरे प्रश्न का उत्तर दिया। – SK9

+0

@All: android: stretchColumns = "0" भी उपयोगी/बेहतर है, ऐसा लगता है, अगर (मेरे मामले में) तालिका में केवल एक कॉलम है जिसे आप स्क्रीन भरने के लिए खींचना चाहते हैं। मेरा TableLayout XML इस पृष्ठ पर मेरे उत्तर में दिया गया है (टाइपिंग के समय नीचे)। – SK9

3

हो सकता है कि इस प्रकार का प्रयास करें:

myTextView.setText(Html.fromHtml("On " + stringData1 + "<br> at " + strinData2); 

मुझे पता है, एक "व्हीलचेयर" समाधान की तरह एक सा है, लेकिन, मेरे लिए काम करता है, हालांकि मैं भी प्रोग्राम के रूप में एक पाठ भरें।

13

पूर्णता के लिए के लिए, यह है कि मेरे TableLayout एक्सएमएल में पढ़ता है:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:shrinkColumns="0" 
    android:stretchColumns="0" 
    android:id="@+id/summaryTable"> 
</TableLayout> 

मैं बाद में इस पॉप्युलेट TableRow एस के साथ।

2

कोड तक भी काम करता है:

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

1 स्तंभ की संख्या है।

संबंधित मुद्दे