ellipsize在android中意味着什么?

时间:2012-11-09 18:39:53

标签: android android-layout

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

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

start

在Android文档中,我读到了:

  

如果设置,则导致比视图宽的单词为
  椭圆化而不是在中间破碎。

问题是在字典中找不到<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" /> 。任何人都可以向我解释ellipsize属性可以带来哪些好处? ellipsizestartend之间有什么区别?

9 个答案:

答案 0 :(得分:345)

您可以找到文档here

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

ellipsize ,一种新词,意思是使用ellipsis缩短文字,即三个点...或更常见的结扎,以代替省略的位。

说原始值pf文本视图是 aaabbbccc 并且它在视图中的拟合

start的输出将是: ... bccc

end的输出将是: aaab ...

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

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

答案 1 :(得分:53)

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

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

对于textview的宽度,wrap_content或match_parent应该都是好的。

答案 2 :(得分:16)

<强> How to Add an ellipsis in a TextView

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

在你的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

答案 3 :(得分:9)

ellipsis连续三个时段......

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

答案 4 :(得分: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.

假设上面是您的文字,如果您使用ellipsize的{​​{1}}属性,则会看到这样的

start

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

end

答案 5 :(得分:1)

注意:您的文字必须大于以下选框的容器框:

 android:ellipsize="marquee"    

答案 6 :(得分:0)

将此属性设置为edittext。 Ellipsize正在使用禁用编辑文本

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

或setKeyListener(null);

答案 7 :(得分:0)

下面是一个示例,说明如何在ConstraintLayout中不使用已弃用的android:singleLine="true"的情况下 ellipsize 的工作方式:

<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。

答案 8 :(得分:0)

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

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

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"