我将TextView设置为ellipsize但是当我将文本放入其中时却没有这样做。有什么想法吗?
<TextView
android:id="@+id/LegalsView"
android:ellipsize="end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />
答案 0 :(得分:63)
尝试:
android:singleLine="true"
答案 1 :(得分:17)
android:layout_width="wrap_content"
允许TextView
扩展,只要它需要(包括在屏幕上运行)。为了使它成为椭圆形,你将不得不设置宽度为建议的公民conn,最好是android:layout_width="fill_parent"
而不是绝对值。
其他提示:您还需要设置TextView
的maxLines(可能为1),并且要显示实际的省略号(“...”),您可能还会有设置
android:scrollHorizontally="true"
答案 2 :(得分:10)
你需要匹配android的设置才能正确计算出对象的位置。有几种可能的组合,并且取决于布局的其余部分是在同一条线上。
这是一个有效的组合:
android:layout_width="0dip" // dynamic width
android:layout_weight="1" // less weight, other objects still "0"
android:ellipsize="end" // ... into end of text (right)
android:singleLine="true" // one line, deprecated, but necessary for some ambients
android:maxLines="1" // one line, new mode
总之,如果使用动态布局,或者只是固定大小,则表示重量,然后表示只有一行并配置“...”的显示方式。
答案 3 :(得分:5)
我能够完成这项工作的唯一方法是设置width="1dp"
,weight="1"
,ellipsize="end"
,maxLines="1"
和scrollHorizontally="true"
。前两个具有与width="match_parent"
相同的效果,而窗口小部件不会从显示器的边缘扩展,其余三个设置都必须使文本变为椭圆形。
答案 4 :(得分:5)
我的应用程序开始忽略maxlines&amp;我加上
时的ellipsizeandroid:textIsSelectable="true"
似乎这些选项不兼容。
答案 5 :(得分:3)
如果你想让多行省略号工作,不幸的是它不能很好地工作。这是Android平台中的一个已知错误,据我所知它还没有修复
在TextView
中,您可以得到的最好的是2行椭圆化(可以通过设置
android:maxLines="2"
请参阅this链接 即使有另一个答案中提到的绝对宽度,它仍然只给你最多2行省略号。 (但如前所述,单线省略号是可以实现的)。因此,例如,您的文本可能会填充您的8行TextView,但在您打开省略号时将显示如下:
+---------------------------------------------------+ | | | This is my cool text that is supposed to fill the | | entire textview but unfortunately because of t... | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------------------------+
如果您知道TextView的大小,则可以使用可用的自定义组件here(不幸的是,最初托管它的Google代码项目似乎已经消失,因此我可以找到此链接。)< / p>
答案 6 :(得分:2)
如果您没有为TextView
定义特定宽度,则当文本到达父视图的宽度时,文本将首先进行椭圆化。
答案 7 :(得分:2)
此解决方案有效:
android:ellipsize="end"
android:singleLine="false"
android:lines="3"
android:maxLines="3"
宽度也可以设置为“wrap_content”
答案 8 :(得分:0)
您将layout_width更改为某个dp而不是wrap_content
和
使用
机器人:SINGLELINE =&#34;真&#34;
机器人:ellipsize =&#34;端&#34;
代码:
import
答案 9 :(得分:0)
只运行运行时,执行以下操作:
textView.setEllipsize(TruncateAt.END);
textView.setLines(1);
textView.setHorizontallyScrolling(true);
textView.setText("Long text goes here");
答案 10 :(得分:0)
您也可以像这样设置maxLines:
<TextView
android:id="@+id/txt_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:ellipsize="end"
android:textStyle="bold"/>
当文本超出maxLines设置时,会出现省略号。
答案 11 :(得分:0)
android:maxWidth="150dp"
是为我省略文字的唯一实例。
答案 12 :(得分:-1)
我认为您需要指定一个绝对宽度才能正常工作。
android:layout_width="100dip"
或
android:layout_width="fill_parent"