Android 6.0以下版本中的文本ellipsize行为

Gur*_*Rao 1 android textview android-4.4-kitkat android-5.0-lollipop android-6.0-marshmallow

下面我有我的布局xml,将包含3 TextView和它们对齐leftcentreright分别。

<RelativeLayout
        android:id="@+id/relRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:text="@string/contact"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@string/colon"
            android:id="@+id/colonRow1"/>

        <TextView
            android:id="@+id/txtPrimaryContact"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_toEndOf="@+id/colonRow3"
            android:layout_toRightOf="@+id/colonRow3"
            android:ellipsize="end"
            android:gravity="end"
            android:maxLines="1"
            android:text="Joe SmithMartinWilliamCathcsdsdsdadas"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是,ellipsize使用Android版本<6.0的android设备无法正常运行或无法正常工作。我的意思是与设备Marshmallow的版本,ellipsize更是打破了文本一旦达到最大宽度,但是对于有设备lollipopkitkat版本,可能会过低,ellipsize发生故障后的空间在文本和显示ellipses,它不为长文本打破。

这是小于android版本的外观Marshmallow

考虑名称为FName LName

联系人:FName ...

这是大于android版本的外观Marshmallow

联系人:FName LNa ...

这是较低版本或预期行为中的错误吗?还是有其他方法可以做到这一点?我想要Marshmallow所有设备中的版本文本。反正我能做到这一点?

更新资料

原来,@ Charu发表评论后,我的假设是错误的。实际上,它会隐藏设备版本<中的长文本Marshmallow。我该如何解决?

现在,我一直在使用下面的代码,但是当我们检查具有不同屏幕尺寸的不同设备时,这并没有扩大规模。我已附上屏幕截图以供参考。

if(android.os.Build.VERSION.SDK_INT<Build.VERSION_CODES.M && name.length()>20)
     name=name.substring(0,20)+"...";
else
     txtPrimaryContact.setEllipsize(TextUtils.TruncateAt.END);
Run Code Online (Sandbox Code Playgroud)

> =棉花糖装置

棉花糖装置


<棉花糖装置[Kitkat是特定的,但也在棒棒糖中测试过]


低于棉花糖

Cha*_*ruක 6

您可能会告诉我,这android:singleLine="true"是不赞成使用的原因,所以您android:maxLines="1"相信我,将其添加 android:singleLine="true"到您的文件中textView可以解决此问题!