34

TextView文本长于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 个 other中LinearLayouts。也许知道这一点很重要。我也已经尝试过属性“ singleLine”,但有人说它已被弃用,无论如何它都不起作用。

4

7 回答 7

53

在样式文件中添加以下样式(通常为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" />

当您需要这种方式时,您可以轻松地重用您的自动滚动功能。

于 2012-06-29T12:43:50.863 回答
24

在你的 xml 中为 TextView 添加这个:

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

作为

        android:singleLine="true"  

已弃用。

于 2012-06-29T13:02:01.083 回答
9
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"
于 2012-06-29T13:10:37.860 回答
4

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

android:layout_width="0dp" (match constraint)
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textIsSelectable="false"
于 2020-01-05T01:16:52.987 回答
4

'android:ems'除非将属性与属性一起android:ellipsize添加,否则这对我不起作用

android:ellipsize="end"
android:singleLine="true"
android:ems="8"
于 2019-08-04T23:22:36.130 回答
1

它适用,singleLine="true"但现在不推荐使用此属性,请改用ellipsizescrollHorizontally="true"

于 2013-01-25T14:14:58.503 回答
0

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

<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"/>
于 2021-01-21T11:13:36.613 回答