Android: TextView اقتطاع واستبدال آخر 3 Char من السلسلة
سؤال
اذا كان 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);