21

मैं TextView से अधिक लंबा होने पर अंत में 3 बिंदुओं को दिखाने के लिए एक सिंगल लाइन TextView रखना चाहता हूं। मुझे नहीं पता क्यों - लेकिन मुझे यह नहीं मिला।टेक्स्टव्यू इलिप्सिज़ (...) काम नहीं कर रहा है

मैंने पहले से ही अपने सिर को समान स्टैक ओवरफ्लो प्रश्नों के चारों ओर लपेट लिया है, लेकिन मैं बिना समाधान के समाप्त हुआ। शायद किसी के पास कुछ उपयोगी संकेत हैं।

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:textStyle="bold" 
     android:text="Full Name" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:layout_width="wrap_content" 
     android:id="@+id/lName" 
     android:layout_gravity="center_vertical" 
     android:maxLines="1" 
     android:ellipsize="end"/> 
</LinearLayout> 

LinearLayout ऊपर 2 अन्य LinearLayouts में नीडिंत है। शायद यह जानना महत्वपूर्ण है। मैंने पहले से ही "singleLine" विशेषता का प्रयास किया है, लेकिन कुछ कहते हैं कि यह बहिष्कृत है और यह वैसे भी काम नहीं करता है।

उत्तर

38

अपनी शैली में निम्नलिखित शैलियों जोड़े (आमतौर पर styles.xml) दायर:

<style name="autoscroll"> 
    <item name="android:singleLine">true</item> 
    <item name="android:ellipsize">marquee</item> 
    <item name="android:marqueeRepeatLimit">marquee_forever</item> 
    <item name="android:focusable">true</item> 
    <item name="android:focusableInTouchMode">true</item> 
    <item name="android:scrollHorizontally">true</item> 
</style> 

फिर अपने TextView के लिए शैली @style/autoscroll जोड़ें:

<TextView android:id="@+id/lName" 
     style="@style/autoscroll" /> 

आप जब आप चाहते हैं आसानी से अपने स्वत: स्क्रॉल सुविधा का पुन: उपयोग कर सकते हैं इस तरफ।

+2

लेकिन टेक्स्ट व्यू के लिए कोई स्टाइल वैल्यू नहीं है !? –

+2

ऐड्रॉइड के बजाय स्टाइल = "@ स्टाइल/ऑटोस्कोल" का उपयोग करें: style = "@ style/autoscroll" – Deshan

+0

मैं प्रोग्रामिक – Riskhan

15

TextView के लिए अपने xml में इस जोड़ें:

 android:maxWidth="200dp" 
     android:maxLines="1" 

रूप

 android:singleLine="true" 

मान्य नहीं है।

+0

** maxwidth ** का उपयोग करना * एक एक्स्टेंसिबल * समाधान नहीं है, और ** सिंगललाइन ** अब बहिष्कृत है। ** ellipsize ** और ** scrollHorizontally ** इसके बजाय उपयोग करें। – Flawyte

+12

मुझे लगता है कि एक गलतफहमी हुई है। मैंने अभी एंड्रॉइड देव पर 'टेक्स्ट व्यू' की जांच की है और 'सिंगललाइन' को बहिष्कृत नहीं किया गया है। – Sufian

7
android:id="@+id/lName" android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:ellipsize="end" 
    android:singleLine="true" 
    android:text="Avinljhakjhsajkhakjshda" 
    android:textSize="16sp" 
+0

यह पहले से ही टेक्स्टव्यू प्रॉपर्टी के लिए काम कर रहा है सभी बेहतरीन :) – LuminiousAndroid

+7

'ellipsize' को बहिष्कृत नहीं किया गया है। संदर्भ के लिए आप किस वेबसाइट का उपयोग करते हैं, मैंने अभी एंड्रॉइड देव की जांच की है। – Sufian

+0

यह एक गलती है, मैं ** सिंगललाइन ** ** ** ** ** ** के बारे में बात कर रहा था। इसे ठीक करने के लिए धन्यवाद। – Flawyte

0

यह singleLine="true" साथ काम करता है, लेकिन यह विशेषता अब हटाई गई है, का उपयोग एल्लिप्साइज और scrollHorizontally="true" बजाय।

+2

आपने इसे दो बार पोस्ट किया है, 'ellipsize' और/या' सिंगललाइन 'को बहिष्कृत किया जा रहा है। कृपया दस्तावेज साझा करें जहां यह कहता है। जैसा कि मैंने पहले कहा है, मैंने एंड्रॉइड देव की जांच की है। – Sufian

+0

जैसा कि मैंने अपनी पोस्ट में कहा था ** सिंगललाइन ** अब कुछ समय से बहिष्कृत है, केवल ** स्क्रिप होरिज़ोंटली = सत्य 'के साथ संयुक्त ** ellipsize ** का उपयोग करें, क्योंकि इनमें से कोई भी 2 बहिष्कृत नहीं है, और इसे काम करना चाहिए। – Flawyte

+0

ठीक है, यहां [यह बहिष्कृत नहीं है] (http: // डेवलपर।android.com/reference/android/widget/TextView.html#setSingleLine(boolean))। – Sufian