【问题标题】:text ellipsize behavior in android version < 6.0android 版本 < 6.0 中的文本椭圆大小行为
【发布时间】:2017-07-20 08:10:21
【问题描述】:

我的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>

我现在面临的问题是,ellipsize 在 Android 设备版本 Marshmallow 版本的设备,一旦达到最大宽度,ellipsize 就会破坏文本,但对于具有lollipopkitkat 版本的设备,可能也会更低,ellipsize 中断在文本中的空格之后向下并显示ellipses,它不会因长文本而中断。

这是在低于Marshmallow的android版本中的外观:

考虑名称是FName LName

联系人:FName...

这是在大于 Marshmallow 的 android 版本中的外观:

联系人:FName LNa...

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

更新

事实证明,@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);

>=棉花糖装置



【问题讨论】:

  • 尽可能贴截图
  • @Guruprasad Rao 椭圆大小在文本中的空格后分解并显示椭圆你确定只是和F (space) Name,看看它是否像F...我不这么想
  • 它取决于您的设备分辨率的 TextView 和 TextSize 中的空间。
  • @Guruprasad Rao 很好地克服这个问题,你可能希望有这样的东西,无论如何都要保留 N 个字符,然后......就像你所做的那样,对于任何使用自动调整大小文本的屏幕查看怎么样? stackoverflow.com/questions/41981272/…您的问题与设备屏幕尺寸有关,我猜是dpi,与操作系统版本无关

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


【解决方案1】:

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

【讨论】:

  • Buddy..你太棒了..这个简单的东西整天都在阻止我..我不知道为什么他们在识别时不指定这个简单的东西,最低版本是多少选择申请.. 谢谢,谢谢,非常感谢.. 编码快乐.. :)
  • @Guruprasad Rao 乐于助人:)
  • 再次非常感谢.. 我实在是太感谢你了.. :) 你不知道这对我来说有多头疼.. :)
  • 谢谢伙计,这解决了我的问题,即在 Android 4.4 上激活对讲时 ellipsize 不起作用!
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 2013-08-18
  • 1970-01-01
  • 2011-08-27
相关资源
最近更新 更多