Android:切断TextView中的长多行文本

时间:2016-05-04 16:48:38

标签: android textview

我有一个TextView,其高度取决于之前的内容,但其中可能有一个长文本。如何在正确的位置切断它并连接三个点或类似于新结束的东西?

目前它看起来像这样: Multiline text which is cut off

我找到了单线文本的一些解决方案,但是如何使用多行?我也不知道行数,因为这取决于屏幕尺寸。

Android上是否有其他典型方式可以显示文本可以扩展?例如。最后一行的颜色渐变?

修改

当我没有固定的高度时,我必须使高度取决于上面的元素,我的XML将如下所示:

<TextView
   android:id="@+id/podcastShortDesc"
   android:text="Long text"
   android:layout_below="@+id/podcastTitle"
   android:layout_toRightOf="@+id/podcastLogo"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"

   android:maxLines="3"
   android:ellipsize="end"

   android:layout_above="@+id/podcastMoreAction" />

当我指定maxLines时,我可以运气,它会起作用: I have luck

但如果标题太大,则不起作用:

enter image description here

3 个答案:

答案 0 :(得分:1)

试试这个。希望它能奏效。

<TextView
android:id="@+id/podcastShortDesc"
android:text="LONG LONG LONG TEXT"
android:layout_width="match_parent"
android:layout_height="50dip"
android:maxHeight="50dp"
android:ellipsize="end"/>

我测试过50dp可以显示正常字体大小的两行。所以在50dp高度你应该添加maxLines 2。

答案 1 :(得分:1)

您应该为&#34; 3点添加以下代码&#34;最后。

android:ellipsize="end"

您应该删除固定高度属性

android:layout_height="50dip"

相反,你应该添加行数

android:maxLines="4"  
android:layout_height="wrap_content"  

Android会照顾其他一切。这样,即使文本小于4行,android也会照顾大小。如果它超过4行,它将添加&#34; 3点&#34; :)指定固定高度可能会削减您的文字。

答案 2 :(得分:0)

尝试修复layout_height并在textview中添加滚动

<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="50dip"
android:text="Hello......"
android:scrollbars="vertical"/>