ellipsize在Android中是什么意思?


199

我在EditText布局中添加了一个,并添加了一个提示,使其水平居中。

运行应用程序时,提示不可见。我发现我应该将的ellipsize价值TextView设为start

<EditText
    android:id="@+id/number1EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="start"
    android:ems="10"
    android:gravity="center_horizontal"
    android:hint="@string/hint1" />

在Android文档中,我读到:

如果设置,则导致长于视图宽的单词被
省略,而不是在中间断开。

问题是ellipsize在字典中找不到。有人可以向我解释我们可以通过ellipsize属性获得什么好处吗?和之间有什么区别startendmiddle


请参考我的最新答案。
Rinkal Bhanderi 2012年

2
顺便说一句:实际的单词“省略号”是虚构的。它被称为“动词名词”,是形成计算机术语的一种常见方式。我以为您知道这个名词是“椭圆”,它通过添加“ -ize”结尾表示“ make into”而变成了动词,因此您可以推断出“ ellipsize”就是“向...添加椭圆东西”。
Michael Edenfield

4
旧的拼写错误,从未纠正。该术语实际上应该是“省略号”。椭圆是围绕两个焦点的平面上的曲线,这样一条直线就可以从一个焦点到曲线上的任何点绘制。省略号是三个点。
radley

ellipseSize的文档仍然缺少描述。
塔拉哈

仍然为我砍了一半。我需要用语保持一体。该死的
filthy_wizard

Answers:


388

您可以在此处找到文档。

根据您的要求,您可以尝试根据选项。

ellipsize”(新词)意思是使用省略号(即三个点...或更常见的连字)来缩短文本,以表示省略的位。

假设pf文本视图的原始值是aaabbbccc及其在视图内的拟合

start的输出将是:... bccc

end的输出将是:aaab ...

middle的输出将是:aa ... cc

marquee的输出将是:aaabbbccc从右向左自动滑动


谢谢。但是我已经读过了。我在搜索它的含义时使用了“椭圆形”一词。这个词不能在其定义中使用!请进一步解释吗?
Hamzeh Soboh,2012年

60

以我的经验,省略号仅在设置以下两个属性时才有效。

android:ellipsize="end"
android:singleLine="true"

对于textview的宽度,wrap_content或match_parent应该都不错。


2
android:singleLine从API级别3开始实际上已被弃用,因此请使用android:maxLines。请注意:>如果同时提供了singleLine和inputType,则inputType标志将覆盖singleLine的值。在R.attr.html#singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona我注意到,如果android:ellipsize =“ start”和android:maxLines =“ 2”(或更多),它将不起作用。尽管文本太长,但开始时我还没有看到任何点。
ka3ak

17

How to Add an ellipsis in a TextView

在API级别1中添加了android:ellipsize。省略号是连续三个句点。(...)。

在您的Xml中

 <TextView
       ....
       android:text="Hi I am Amiyo,you can see how to ellipse works."
       android:ellipsize = "end"  
   />

此时,省略号将不会显示,因为将TextView设置为在输入新文本时默认情况下自动扩展。您将需要以某种方式限制TextView。这样做,您可以使用添加到其中的任何一个来TextView a scrollHorizontally, minLines, or maxLines显示省略号。

制作椭圆:

    at the end: this is how it would...     
   use: android:ellipsize = "end"

 in the middle: this is ...how it would
use: android:ellipsize = "middle"

 at the start: ...this is how it would
use: android:ellipsize = "start"

 to have no ellipse
use: android:ellipsize = "none"

请注意:

 Do not use android:singeLine = "true", it is deprecated.
android:maxLines = "1" will not display the three dots (...)
android:lines = "1" will not display the three dots (...)

欲了解更多详情,请访问这里

http://developer.android.com/reference/android/widget/TextView.html#attr_android%3aellipsize


10

一个省略号是连续三个时期...

当TextView无法展开以显示其所有文本时,将使用省略号。ellipsized如果需要,该属性设置三个点的位置。


5

文本:

 This is my first android application and
 I am trying to make a funny game,
 It seems android is really very easy to play.

假设上面是您的文本,如果您使用ellipsizestart属性,它将显示如下

This is my first android application and
...t seems android is really very easy to play.

具有end属性

 This is my first android application and
 I am trying to make a funny game,...

3

这是一个有关在不使用ConstraintLayout中不推荐使用ellipsize的情况下的示例android:singleLine="true"

<TextView
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:textSize="13sp"
   android:ellipsize="end"
   android:maxLines="2"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   tools:text="long long long long long long text text text" />

请记住,如果您的文本应该在一行中,则将maxLines更改为1。


谢谢您,此解决方案解决了我的问题。关键是android:layout_width="0dp"代替android:layout_width="wrap_content"。请注意,这是适用的,因为我正在使用ConstraintLayout。这里也讨论了stackoverflow.com/a/48149405/2848676
Michael Osofsky,

1

注意:您的文字必须大于容器框,以便以下内容能够显示:

 android:ellipsize="marquee"    

1

设置此属性以编辑文本。Elipsize正在使用禁用编辑文本

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

或setKeyListener(null);


设置上面提到的所有属性和setKeyListener(null)(可编辑属性除外)。
穆巴拉克

0

当宽度固定时使用ellipsize,它将自动截断文本并在末尾显示省略号,

如果您将layout_width设置为wrap_content和match_parent,它将无法正常工作。

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.