android版本中的文本ellipsize行为< 6

时间:2017-03-01 05:57:20

标签: android textview android-5.0-lollipop android-6.0-marshmallow android-4.4-kitkat

我的TextView中的布局低于3 left,并且它们分别对齐centreright<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>

ellipsize

我现在面临的问题是,Marshmallow无法正常运行或按预期使用Android设备版本&lt; 6.0。我的意思是对于具有ellipsize版本的设备,lollipop在达到最大宽度时会破坏文字,但对于具有kitkatellipsize版本的设备,可能会更低, ellipses在文字中的空格后分解并显示Marshmallow ,对于长文本不会中断。

以下是它在android版本中的显示效果低于Marshmallow

考虑名称是 FName LName

  

联络:FName ......

以下是Android版本大于Marshmallow的样子:

  

联系方式:FName LNa ...

这是较低版本或预期行为的错误吗?或者还有其他方法吗?我想在所有设备中都有Marshmallow版本的文本。无论如何我能做到这一点吗?

更新

事实证明,在@ Charu的评论之后,我的假设是错误的。它实际上隐藏了设备版本中的长文本&lt; 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); 。我怎么能来这个?

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

LIKE

&gt; =棉花糖设备

Marshmallow device

&LT;棉花糖装置[Kitkat具体但在棒棒糖中也经过测试]

Lower than Marshmallow

1 个答案:

答案 0 :(得分:6)

您可能会告诉我android:singleLine="true"有点被弃用,这就是您使用android:maxLines="1"的原因,但相信我将此android:singleLine="true"添加到您的textView应该可以解决问题!