O que ellipsize significa no android?


199

Adicionei um EditTextao meu layout, adicionei uma dica e o centralizei horizontalmente.

Ao executar o aplicativo, a dica estava invisível. Eu achei que eu deveria fazer o ellipsizevalor do TextViewser 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" />

Na documentação do Android, eu li:

Se definido, faz com que as
elipses maiores que a visualização sejam amplas, sejam elipsizadas em vez de quebradas no meio.

O problema é que ellipsizenão foi encontrado no dicionário. Alguém pode me explicar quais benefícios podemos obter por ellipsizeatributo? E qual é a diferença entre start, end, middle?


por favor, consulte minha resposta atualizada.
Rinkal Bhanderi

2
btw: a palavra real "reticulado" é composta. É chamado de "verbete de substantivo" e é uma maneira comum de formar jargão de computador. O substantivo é "elipse", que suponho que você conhece, e é transformado em verbo adicionando a finalização "-ize", que significa "transformar em", para que você possa deduzir que "elipse" é "adicionar uma elipse a" alguma coisa".
Michael Edenfield

4
Erro de ortografia antigo, nunca corrigido. O termo deve realmente ser "reticências". Elipse é uma curva em um plano que circunda dois pontos focais, de modo que uma linha reta seja desenhada de um dos pontos focais para qualquer ponto da curva. Reticências são os três pontos.
radley

A documentação de ellipseSize tem uma descrição ausente, ainda.
Talha

ainda corta palavras ao meio para mim. preciso que as palavras permaneçam inteiras. dane-se
filthy_wizard

Respostas:


388

Você pode encontrar documentação aqui .

Com base em sua exigência, você pode tentar a opção de acordo.

elipsize , um neologismo, significa reduzir o texto usando uma elipse , isto é, três pontos ...ou mais comumente ligadura , para substituir os bits omitidos.

Digamos que o valor original da visualização de texto é aaabbbccc e seu ajuste dentro da visualização

startA saída será: ... bccc

endA saída será: aaab ...

middlea saída será: aa ... cc

marqueeA saída será: aaabbbccc deslizando automaticamente da direita para a esquerda


Obrigado. Mas eu já li isso. Ele usa a palavra "reticulado", onde estou pesquisando sobre o seu significado. A palavra não pode ser usada em sua definição !! Alguma explicação adicional, por favor?
Hamzeh Soboh

60

pela minha experiência, as reticências funcionam apenas se abaixo de dois atributos estiverem definidos.

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

para a largura do textview, wrap_content ou match_parent devem ser bons.


2
Na verdade, android:singleLinefoi descontinuado desde o nível 3 da API; portanto, use android:maxLines. Observe:> se for fornecido o singleLine e o inputType, os sinalizadores inputType substituirão o valor do singleLine. Confira os documentos em R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@ AlbertoGaona Notei que não funciona se android: ellipsize = "start" e android: maxLines = "2" (ou mais). Não vi nenhum ponto no começo, embora o texto fosse muito longo.
ka3ak

17

How to Add an ellipsis in a TextView

android: elipsize adicionado no nível 1 da API. As reticências são três períodos consecutivos. (...)

No seu XML

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

Nesse ponto, as reticências ainda não serão exibidas, pois um TextView está definido para expandir automaticamente o padrão quando um novo texto for inserido. Você precisará limitar o TextView de alguma forma. Faça isso, você pode usar adicionar ao seu TextView a scrollHorizontally, minLines, or maxLinespara exibir as reticências.

Para fazer a elipse:

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

E

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

E

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

E

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

Nota Por favor:

 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 (...)

Para mais detalhes você pode visitar aqui

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


10

As reticências são três períodos seguidos ...

O TextView usará reticências quando não puder ser expandido para mostrar todo o seu texto. O atributo ellipsizeddefine a posição dos três pontos, se necessário.


5

Texto:

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

Suponha que o texto acima seja o seu e, se você estiver usando ellipsizeo startatributo, ele será visto assim

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

com endatributo

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

3

Aqui está um exemplo de como o elipsize funciona sem o uso de obsoleto android:singleLine="true"em um 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" />

lembre-se se você possui um texto que deveria estar em uma única linha, altere os maxLines para 1.


Obrigado, esta solução resolveu o meu problema. A chave é em android:layout_width="0dp"vez de android:layout_width="wrap_content". Observe que isso é aplicável porque eu estou usando um ConstraintLayout. Também discutido aqui stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Nota: seu texto deve ser maior que a caixa do contêiner para que o seguinte seja marcado:

 android:ellipsize="marquee"    

1

Defina esta propriedade para editar o texto. Elipsize está trabalhando com desativar a edição de texto

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

ou setKeyListener (nulo);


O conjunto acima mencionado mencionou todas as propriedades e setKeyListener (null), exceto a propriedade editável.
Mubarak

0

Use reticências quando tiver largura fixa, em seguida, ele truncará automaticamente o texto e exibirá as reticências no final,

não funcionará se você definir layout_width como wrap_content & match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.