Android: TextView اقتطاع واستبدال آخر 3 Char من السلسلة

StackOverflow https://stackoverflow.com/questions/1666736

  •  13-09-2019
  •  | 
  •  

سؤال

اذا كان String أطول من TextViewعرض أنه يلتف تلقائيا على السطر التالي. يمكنني تجنب هذا باستخدام android:singleLine (مهملة) أو عن طريق الإعداد android:inputType="text". وبعد ما أحتاجه الآن هو شيء يحل محل آخر ثلاث أحرف مني String مع "...". نظرا لأنني لا أستخدم خط Monospace، فسيكون ذلك دائما دائما اعتمادا على الحروف المستخدمة في بلدي String. وبعد لذلك أنا أتساءل ما هو أفضل طريقة للحصول على آخر 3 أحرف من سلسلة في TextView واستبدالها. ربما يكون هناك بالفعل شيء ينفذ في إطار Android، لأن هذا يجب أن يكون مشكلة شائعة.

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرا على استخدام الخاصية "ellipsize" لعرض نص:

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

قد تحتاج أيضا إلى تطبيق قيم الجاذبية على التصميم أيضا؛ لقد رأيت في بعض الأحيان مشاهدات "التمدد التلقائي" بدونها.

نصائح أخرى

وجدت عمل مثيرة للاهتمام على جولة لهذه المشكلة.

maxLines=1
ellipsize=end
scrollHorizontally=true

الحيلة هي أن البيان الأخير حول التمرير الأفقي .... التحقق من ذلك. يعمل على الأقل على V2.2.

برمجيا، يمكنك استخدام:

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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top