文字没有椭圆化

dig*_*n79 25 android textview android-layout

我有一个设置为ellipsize的TextView但是当我把文本放入其中时却没有这样做.有任何想法吗?

<TextView 
    android:id="@+id/LegalsView" 
    android:ellipsize="end"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium" />
Run Code Online (Sandbox Code Playgroud)

Edw*_*ans 63

尝试:

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

  • 该线与ellipsize结合产生了所需的行为. (4认同)
  • 如果文档建议,最好使用maxLines. (3认同)
  • 即使对于一些相对较新的实现,maxLines也不会工作,singleLine确实如此. (3认同)
  • 如果我需要用两行椭圆化文本怎么办? (2认同)

Gle*_*ger 17

android:layout_width="wrap_content"
Run Code Online (Sandbox Code Playgroud)

TextView只要需要(包括在屏幕上运行),它将允许扩展.为了使它椭圆化,你将不得不设置一个宽度作为建议的公民conn,最好用android:layout_width="fill_parent"而不是绝对值.

附加提示:您还需要设置TextView(可能为1)的maxLines ,并且要显示实际的省略号("..."),您可能还需要设置

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

  • 不,它仍然必须是真的,否则省略号将不会显示.没有意义,但你去了. (2认同)

Rod*_* T. 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
Run Code Online (Sandbox Code Playgroud)

总之,如果使用动态布局,或者只是固定大小,则指示权重,然后指示只有一行并配置"..."的显示方式.


Wig*_*rld 6

我添加时,我的应用程序开始忽略maxlines&ellipsize

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

看起来这些选项不兼容.


小智 5

我已经能够使这项工作的唯一方法是设置width="1dp",weight="1",ellipsize="end",maxLines="1"scrollHorizontally="true".前两个具有相同的效果,width="match_parent"如果没有窗口小部件从显示器的边缘扩展,则必须进行剩余的三个设置以使文本变为椭圆形.


cit*_*onn -1

我认为你需要指定一个绝对宽度才能工作。

android:layout_width="100dip"
Run Code Online (Sandbox Code Playgroud)

或者

android:layout_width="fill_parent"
Run Code Online (Sandbox Code Playgroud)