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

在运行应用程序时,提示是不可见的。我发现我应该使椭圆值的TextView是开始:

<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在字典里找不到。谁能给我解释一下椭圆大小属性能给我们带来什么好处?开始,结束,中间的区别是什么?


当前回答

如上所述,如果没有足够的文本空间(由于布局大小或设置限制),ellpsize将添加…点到它。

这里有一个例子: 顶部:带有椭圆大小(这里设置为'end') 底部:没有

其他回答

你可以在这里找到相关文档。

根据您的需求,您可以根据您的需求进行选择。

“省略号”是一个新词,意思是用省略号把文本缩短,也就是用三个点…或者更常见的是捆绑,来代替被省略的部分。

假设文本视图的原始值是aaabbbccc,它在视图内部是合适的

Start的输出将是:…bccc

End的输出将是:aaab…

中间的输出将是:aa…cc

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

注意:您的文本必须大于容器框,以便以下内容被选中:

 android:ellipsize="marquee"    

下面是一个例子,关于ellipsize如何工作,而不使用已弃用的android:singleLine="true"在一个ConstraintLayout:

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

如上所述,如果没有足够的文本空间(由于布局大小或设置限制),ellpsize将添加…点到它。

这里有一个例子: 顶部:带有椭圆大小(这里设置为'end') 底部:没有

根据我的经验,只有设置了以下两个属性,省略号才能工作。

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

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