Gur*_*Rao 1 android textview android-4.4-kitkat android-5.0-lollipop android-6.0-marshmallow
下面我有我的布局xml,将包含3 TextView和它们对齐left,centre并right分别。
<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更是打破了文本一旦达到最大宽度,但是对于有设备lollipop或kitkat版本,可能会过低,在,它不为长文本打破。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是特定的,但也在棒棒糖中测试过]
您可能会告诉我,这android:singleLine="true"是不赞成使用的原因,所以您android:maxLines="1"相信我,将其添加 android:singleLine="true"到您的文件中textView可以解决此问题!
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |