android TextView Ellipsize(...)不工作

wlzqhblo  于 2023-05-15  发布在  Android
关注(0)|答案(8)|浏览(240)

我想有一个单行TextView显示了3点在结束时,文本是比TextView长。我不知道为什么-但我不明白。
我已经在思考类似的StackOverflow问题,但我最终没有解决方案。也许有人有一些有用的提示。

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:orientation="vertical">

    <TextView 
        android:textStyle="bold" 
        android:text="Full Name" 
        android:layout_height="wrap_content" 
        android:textSize="16sp"
        android:layout_width="wrap_content" 
        android:id="@+id/lName"
        android:layout_gravity="center_vertical" 
        android:maxLines="1"
        android:ellipsize="end"/>
</LinearLayout>

上面的LinearLayout嵌套在另外2个LinearLayouts中。也许这是重要的知道。我已经尝试了属性“singleLine”,但有些人说这是不推荐的,它不工作。

vktxenjb

vktxenjb1#

在样式文件(通常为styles.xml)中添加以下样式:

<style name="autoscroll">
    <item name="android:singleLine">true</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:marqueeRepeatLimit">marquee_forever</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:scrollHorizontally">true</item>
</style>

然后将样式@style/autoscroll添加到TextView

<TextView android:id="@+id/lName"
      style="@style/autoscroll" />

您可以在需要时轻松地重用自动滚动功能。

t3irkdon

t3irkdon2#

在TextView的xml中添加以下内容:

android:maxWidth="200dp" 
        android:maxLines="1"

作为

android:singleLine="true"

已弃用。

ffdz8vbo

ffdz8vbo3#

android:id="@+id/lName" android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="Avinljhakjhsajkhakjshda"
    android:textSize="16sp"
hmtdttj4

hmtdttj44#

除非将'android:ems'属性与android:ellipsize属性沿着添加,否则这对我来说是行不通的

android:ellipsize="end"
android:singleLine="true"
android:ems="8"
uyhoqukh

uyhoqukh5#

当我的文本是可选择的时,省略号没有出现。我需要禁用可选文本(这是默认设置):

android:layout_width="0dp" (match constraint)
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textIsSelectable="false"
iyfjxgzm

iyfjxgzm6#

它适用于singleLine="true",但该属性现在已被弃用,请使用ellipsizescrollHorizontally="true"

zengzsys

zengzsys7#

使用此代码,它肯定会工作。

<TextView
    android:id="@+id/sAddress"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:ellipsize="end"
    android:text="Adress"
    android:textSize="14sp"/>
kx1ctssn

kx1ctssn8#

好吧,这种方式对我有用。
我正在使用约束布局,忘记在结尾添加约束后添加约束我可以看到textview结尾的省略号

<androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/txtName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_10sdp"
        android:text="asdasdnadnlaskldaklskdlasnkldsnkla"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        style="@style/TextStyle"
        android:ellipsize="end"
        android:maxLines="1"
        android:textStyle="bold"
        android:textColor="@color/black"
        />

相关问题