यह मेरा विचार है। लेकिन अगर आप पूरे पाठ को प्रदर्शित करना चाहते हैं तो आप onClickListener()
को TextView
पर कार्यान्वित कर सकते हैं जो envoking पूरे पाठ को Dialog
या जो कुछ भी दिखाएगा।
एक और दृष्टिकोण जो मैं उपयुक्त हो सकता है लगता है विभिन्न घनत्व स्क्रीन के लिए विभिन्न लेआउट बनाने के लिए और फिर अपने xml में जोड़ने है android:maxLines="your limit"
android:textSize="some value"
और android:maxLength="@integer/mylimit"
(विभिन्न सीमा और विभिन्न घनत्व के लिए आकार)। (
String myText = "bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla";
String clickForMore="...Click for more";
int limit = myActivity.this.getResources().getInteger(R.integer.limit); //dont forget to declare it in your string.xml
कल्पना कीजिए कि हम पाठ के 3 लाइनों है और हम केवल 2 की अनुमति दी कुल के साथ: तो क्या रहता है लंबाई मापने के लिए और केवल-स्ट्रिंग (या डिफ़ॉल्ट पाठ)
कुछ की तरह दिखाने के है int limit
की लंबाई मान)। हमारे पाठ का टुकड़ा TextView
के अंदर फिट बैठता है, लेकिन यह पूरी तरह से दिखाया नहीं गया है। हम उपयोगकर्ता को सूचित करने के लिए वहाँ पढ़ने के लिए और अधिक है कि जरूरत है ...
myTextView.setVisibility(View.INVISIBLE);// <--- takes the space in the container
if(clickForMore.length() < myText.length() && myText.length() > limit)// <--- avoiding negative place and checking if the entire text is inside the box or there are characters leftover.
{
String temp = myText.substring(0, limit-clickForMore.length());// <-- we cutting space from currently displayed (not original string) to append the `clickForMore` string information.
myTextView.setText(temp+clickForMore);
myTextView.setVisibility(View.VISIBLE);
myTextView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// display the dialog with full text....
return false;
}
}); //<--- instantiate the click listener
}
else
{
//the text fits the box and no need to slice it, just display it straight forward
}
myText.length() > limit
- स्ट्रिंग सीमा overlaps परीक्षण करें कि। लागू .addTextChangeListener()
(TextWatcher
) और afterTextChange()
ओवरराइड विधि में मैंने ऊपर वर्णित सभी को कार्यान्वित किया है।
फिर आप TextView
के लिए onClickListener()
बनाते हैं जहां आप संवाद करते हैं और फिर अपना टेक्स्ट दिखाते हैं।
मुझे आशा है कि आपको यह विचार उचित लगेगा। यदि आपको अधिक स्पष्टीकरण की आवश्यकता है जो मुझे दिमाग में था तो मुझे लिखने में संकोच न करें।
स्रोत
2011-08-15 01:10:23
दृश्य पहले से ही स्थिर आकार के लिए कॉन्फ़िगर किया गया है। अब जब यह फिट नहीं होता है तो मुझे इसके टेक्स्ट को प्रतिस्थापित करने की आवश्यकता है। – Asahi
यदि contant आकार है तो आप परीक्षण कर सकते हैं और देख सकते हैं कि कितने चार्ट फिट हो सकते हैं। यदि टेक्स्टटाइज उस लंबाई से अधिक है, तो इसे बदलने के लिए – weakwire
को प्रतिस्थापित करने के लिए मैं 'सेटटेक्स्ट' को कॉल कर रहा हूं लेकिन यह टेक्स्टव्यू को प्रभावित नहीं करता है - यह पहला सेटटेक्स्ट (जब आप पहली बार टेक्स्टव्यू पर लिखते हैं) को कॉल करने से पहले – Asahi