एंड्रॉइड: टेक्स्ट व्यू स्वचालित रूप से स्ट्रिंग के अंतिम 3 चार्ट को छोटा और प्रतिस्थापित करता है


131

यदि a Stringकी TextViewचौड़ाई से अधिक लंबी है तो यह स्वचालित रूप से अगली पंक्ति पर आ जाती है। मैं इसका उपयोग करके android:singleLine(पदावनत) या सेटिंग से बच सकता हूं android:inputType="text"। अब मुझे जो कुछ चाहिए वह मेरे String"" ... के अंतिम 3 पात्रों को बदल देता है । चूँकि मैं एक मोनोस्पेस फ़ॉन्ट का उपयोग नहीं कर रहा हूँ, यह हमेशा मेरे द्वारा उपयोग किए गए अक्षरों के आधार पर भिन्न होगा String। इसलिए मैं सोच रहा हूं कि एक स्ट्रिंग के अंतिम 3 पात्रों को प्राप्त करने TextViewऔर उन्हें बदलने का सबसे अच्छा तरीका क्या है। हो सकता है कि एंड्रॉइड फ्रेमवर्क में पहले से ही कुछ लागू हो, क्योंकि यह एक आम समस्या होनी चाहिए।

जवाबों:


290

आपको पाठ दृश्य की "दीर्घवृत्त" संपत्ति का उपयोग करने में सक्षम होना चाहिए:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>

आपको लेआउट में गुरुत्वाकर्षण मूल्यों को भी लागू करने की आवश्यकता हो सकती है; मैंने कभी-कभी उनके बिना "ऑटो-स्ट्रेचिंग" दृश्य देखे हैं।


उत्तम। धन्यवाद। मैंने कोशिश की है कि पहले, लेकिन काम नहीं किया, क्योंकि मैंने एंड्रॉइड के बजाय android: inputType = "text" का उपयोग किया: सिंगललाइन = "सच" (जो कि माना जाता है)। लेकिन अब मैं Android के साथ छड़ी करने जा रहा हूँ: singleLine = "true"। मुछास ग्रेसिया।
14

44
यह अभी भी "..." नहीं जोड़ता है। मेरे लिए, यह सवाल पूरी तरह से उत्तर नहीं है! यह उत्तर "लघु अतिशयोक्ति" को सिर्फ "संक्षिप्त" बना देगा, न कि "लघु वेर्लोन ..." इसके शीर्ष पर आप लोग एक पदावनत विशेषता का उपयोग करने का सुझाव देते हैं।
OneWorld

7
महान काम करता है, हालांकि सिंगललाइन पदावनत है इसलिए आपको इसके बजाय अधिकतम = "1" का उपयोग करना चाहिए। साइड नोट, ellipsize कई लाइनों के साथ भी काम करता है!
टॉरे लासले

4
सिंगललाइन को हटा दिया गया है। अधिकतम उपयोग करें = "1"। पुराने उत्तर के लिए सिर्फ एक टिप्पणी
Ewoks

1
MaxLine = 1 बीच में टेक्स्टव्यू को काट देगा। सिंगललाइन = ट्रू उम्मीद के मुताबिक काम करता है।
स्नेक

33

इस समस्या के लिए एक दिलचस्प काम मिला।

maxLines=1
ellipsize=end
scrollHorizontally=true

ट्रिक यह है कि क्षैतिज स्क्रॉलिंग के बारे में अंतिम विवरण .... इसे देखें। यह कम से कम v2.2 पर काम करता है।


दिलचस्प ... जानकर अच्छा लगा। हेड-अप के लिए धन्यवाद मार्को।
बोनान्ज़ा ड्रिवेर

4

प्रोग्रामेटिक रूप से, आप उपयोग कर सकते हैं:

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.