यदि यह 1 पंक्ति से अधिक है, तो मैं अपने टेक्स्ट व्यू पर दीर्घवृत्त कैसे दिखा सकता हूं?


100

मेरे पास निम्नलिखित लेआउट है जो काम नहीं करता है:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:id="@+id/experienceLayout" 
    android:background="#ffffff" 
    android:layout_height="match_parent" 
    android:paddingLeft="6dp" 
    android:paddingRight="6dp" 
    android:paddingBottom="6dp" 
    android:paddingTop="6dp">

    <TextView 
        android:layout_weight="1" 
        android:id="@+id/experienceLabel" 
        android:text="Experience" 
        android:layout_height="wrap_content" 
        android:textColor="#000000" 
        android:layout_width="wrap_content" 
        android:textStyle="bold">
    </TextView>

    <TextView 
        android:id="@+id/experienceTextView" 
        android:text="TextView" 
        android:layout_height="wrap_content" 
        android:textColor="#000000" 
        android:layout_width="wrap_content" 
        android:ellipsize="end" 
        android:lines="1" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:fadeScrollbars="false">
    </TextView>

</LinearLayout>

जवाबों:


286

यह एक आम समस्या है। निम्नलिखित का उपयोग करके देखें:

android:scrollHorizontally="true"
android:ellipsize="end" 
android:maxLines="1"

.............. स्क्रॉलहोल क्षैतिज रूप से "विशेष सॉस" है जो इसे काम करता है।


12
अजीब ... मैंने कोशिश की android:scrollHorizontally="true"लेकिन यह काम नहीं किया, मुझे पदावनत विशेषता का उपयोग करना पड़ा android:singleLine="true"
गेरार्डो कॉन्टिजोच

1
हाँ scrollHorizontallyवास्तविक कुंजी है...
ऋषभ दत्त शर्मा

scrollHorizontally? जाहिर है मैं एक क्षैतिज स्क्रॉल प्रभाव नहीं चाहता।
filthy_wizard

@ user1232726: हाँ, "क्षैतिज रूप से स्क्रॉल करें।" सामान्य ज्ञान की बात के रूप में, प्रश्न की तारीख और प्रतिक्रियाओं की तारीख पर एक नज़र डालें ... बिना यह कहे चला जाता है कि न तो वर्तमान में रिलेटेड हो सकता है (टिप्पणी करने से पहले)।
बोनांजाड्राइवर

मैक्सलाइन्स के साथ दीर्घवृत्त का उपयोग करने से ऐप क्रैश हो सकता है - Android Studio intellisense की रिपोर्ट
वैष्णव म्हत्रे

34

यह दीर्घवृत्त के साथ एक एकल रेखा भी बनाएगा

 android:singleLine="true"

15
यह स्पष्ट रूप से हटा दिया गया है
ओलिवर पियरमैन

1
यह एक बेहतर लंबे शब्दों को तोड़ता है।
bpiec

Android: maxLines = "1"
जयदेव

1
@grebulon यह पदावनत है। कम से कम अब।
स्पिकैट्रिक्स

25

इसे इस्तेमाल करो

android:ellipsize="end"  
android:singleLine="true"

क्या आउटपुट आता है इसकी पूरी जानकारी के बिना इसका उपयोग न करें

android:ellipsize="end"  
android:maxLines="1"

जब आप इसका उपयोग करते हैं maxlines = 1तो यह कुछ समय के लिए अधिकांश पात्रों को काट देगा।


12

जिस तरह से यह मेरे लिए कई उपकरणों / एपीआई पर काम करता था वह प्रोग्रामेटिक रूप से इस तरह था (जहां टीवी आपका टेक्स्ट व्यू है):

    if (tv.getLineCount() > 1) {
        int lineEndIndex = tv.getLayout().getLineEnd(0);
        String text = tv.getText().subSequence(0, lineEndIndex - 3) + "\u2026";
        tv.setText(text);
    }

2
यह सभी का सबसे उपयोगी उत्तर है ... हर एक एपीआई पर काम करता है और इसे आसानी से एक यूटिलिटी लाइब्रेरी के रूप में परिवर्तित किया जा सकता है।
मैरिएन ज़ोरिल्ला

1
आपको \u2026तीन .पात्रों
क्रिस स्टिलवेल

आप सही हैं @ क्रिसहिलवेल और मैं अपने कोड में दीर्घवृत्त चरित्र का उपयोग करता हूं। मैंने उत्तर संपादित किया है, धन्यवाद। :)
मैरिलिया

3

तो ऊपर दिए गए सभी उत्तर इस आवश्यकता को पूरा करते हैं कि केवल 1 पंक्ति और फिर दीर्घवृत्त दिखाई दे। हालाँकि यदि आप चाहते हैं कि पाठ की कुछ पंक्तियों के बाद दीर्घवृत्त दिखाई दे, तो आपको निम्नलिखित का उपयोग करना चाहिए:

android:ellipsize="end"
android:maxLines="2"
android:singleLine="false"

इसके साथ दीर्घवृत्त केवल 2 लाइनों के बाद दिखाई देगा। नोट: इसकी झूठी के रूप में सिंगललाइन होना महत्वपूर्ण है।


दस्तावेज़ के अनुसार डिफ़ॉल्ट मान गलत है: developer.android.com/reference/android/widget/…
Pierre


-1

android:singleLineपदावनत किया गया है। मेरे मामले में, मुझे इसके लिए एक निश्चित ऊंचाई प्राप्त करनी थी TextViewऔर मैंने android:linesइसके बजाय विशेषता का उपयोग किया android:maxLines। मैंने सोचा कि इससे किसी को मेरी जैसी समस्या हो सकती है।

android:ellipsize="end"
android:lines="2"

सच नहीं। प्रलेखन में
पदावनति के

@ सादर रुचिकर। यह दस्तावेज़ कहता है कि यह है - developer.android.com/reference/android/R.attr.html#singleLine
Reaz Murshed
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.