当前位置: 首页 > 知识库问答 >
问题:

android版本

秦阳旭
2023-03-14

我的XML布局如下,其中包含3个TextView,它们分别对齐

<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设备版本<6.0的情况下并不能很好地工作。我的意思是,对于marshmallow版本的设备,ellipsize会在达到最大宽度时中断文本,但是对于lollipopkitkat版本的设备,可能也会更低, <罢工> 这个 ellipsize故障发生后 文本和显示中的空格 省略号 ,它不会中断长文本。

下面是它在android版本中的样子,它小于Marshmallow:

考虑名称是FName LName

联系人:fname...

以下是它在android版本中的外观,大于marshmallow:

联系人:FName LNA...

这是低版本的bug还是预期的行为。还是有别的办法可以做到这一点?我希望在所有设备中都有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);

>=Marshmallow设备

共有1个答案

邵羽
2023-03-14

您可能会告诉我android:singleline=“true”是不推荐使用的,这就是您为什么使用android:maxlines=“1”的原因,但请相信我,将这个android:singleline=“true”添加到您的TextView应该可以解决这个问题!

 类似资料:
  • 1.3.Android的版本 同任何软件一样,Android也在不断的改进之中,其间的变化就在版本号上得以呈现。但是容易使人迷惑的是,不同版本号之间又是什么关系?在表格里看会更直观些,如下: 表格 1.1. 截至Android 3.0的Android各版本 Android 版本号 API Level 代号 Android 1.0 1 Android 1.1 2 Android 1.5 3 Cupc

  • 我对Android并不陌生,我很习惯于版本处理和如何调整它,但当我看到这一点时,我很困扰。。。 在Lollipop前的任何设备上,这一行都会导致应用程序崩溃,因为构建失败。版本代码。Lollipop字段不存在。。。那么,为什么在文档中推荐的解决方案中会出现这种情况呢? 我真的想知道我错过了什么?

  • 如何为类启用multiDex,以便在DexPathList中包含或跟踪它们? 我正在使用graalvm(带有本机图像)和gluonfx nativePackage任务生成apk。 但是当我尝试访问SMS广播接收器时,我得到了DexPathList中找不到的类。。。 这是androidManifest设置。。 当手机上的短信掉落时,我得到的错误如下...无法实例化接收器demo.services.S

  • 问题内容: 如何发布项目的Jar包装? 我发现,位于下面,我想这是正确的Jar包(包含文件)。 有什么正式的方法可以将库发布为JAR而不是AAR? 编辑 我使用Gradle发行了Maven构件,并且我想连同AAR软件包一起发行JAR。因此具有签名,md5,清单… 的JAR 基于https://chris.banes.me/2013/08/27/pushing-aars-to-maven-centr

  • 当我建造一个agora apk时,我得到了这个 CommandInvokationFailure:Gradle生成失败。f:\unity_2018.3.f1\unity\editor\data\playbackengines\androidplayer/tools\openjdk\windows\bin\java.exe-classpath“f:\unity_2018.3.f1\unity\edi

  • Android Studio 2.1.3中的Gradle问题 当我运行我根据教程创建的桌面应用程序时,我得到了这些错误。 我在哪里可以找到2.1.3级?请帮帮我.Im使用Libgdx框架。提前谢谢你。 https:://repo1.maven.org/maven2/com/android/tools/build/gradle/2.1.3/gradle-2.1.3。https:://repo1.ma