TextView Ellipsize(...)不起作用

Bin*_*Ich 23 android textview android-layout android-linearlayout

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>
Run Code Online (Sandbox Code Playgroud)

LinearLayout上述嵌套到2以外LinearLayouts.也许这一点很重要.我已经尝试了" singleLine" 这个属性,但是有些人说这个已被弃用,无论如何它都不起作用.

Ste*_*isi 46

在样式文件中添加以下样式(通常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>
Run Code Online (Sandbox Code Playgroud)

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

<TextView android:id="@+id/lName"
      style="@style/autoscroll" />
Run Code Online (Sandbox Code Playgroud)

您可以在需要时轻松重复使用自动滚动功能.

  • 使用style ="@ style/autoscroll"而不是android:style ="@ style/autoscroll" (3认同)
  • 但TextViews没有Style值!? (2认同)

Kha*_*han 18

在xml中为TextView添加:

        android:maxWidth="200dp" 
        android:maxLines="1" 
Run Code Online (Sandbox Code Playgroud)

        android:singleLine="true"  
Run Code Online (Sandbox Code Playgroud)

已弃用.

  • 我认为这是一个误解.我刚刚在Android dev上检查了`TextView`,并且不推荐使用`singleLine`. (13认同)

Lum*_*oid 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"
Run Code Online (Sandbox Code Playgroud)

  • `ellipsize`不被弃用.您使用哪个网站作为参考,我刚检查了Android dev. (7认同)

Zai*_*ain 5

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

android:ellipsize="end"
android:singleLine="true"
android:ems="8"
Run Code Online (Sandbox Code Playgroud)

  • 我认为这不是因为专门设置了`android:ems`。如果我们想让Android绘制椭圆,那么我们必须指定`TextView`的长度,即宽度不能是`wrap_content`。 (4认同)