Co oznacza elipssize w Androidzie?


199

Dodałem EditTextdo mojego układu i podpowiedź, i wyśrodkowałem go poziomo.

Podczas uruchamiania aplikacji podpowiedź była niewidoczna. Uważam, że należy uczynić ellipsizewartość Instrumentu TextViewbyć 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" />

W dokumentacji Androida czytam:

Jeśli ustawione, powoduje, że słowa dłuższe niż widok jest szeroki, są
elipsowane, a nie łamane w środku.

Problem polega na tym, że ellipsizenie ma go w słowniku. Czy ktoś może mi wyjaśnić, jakie korzyści możemy uzyskać dzięki ellipsizeatrybutowi? A jaka jest różnica między start, end, middle?


uprzejmie odsyłam do mojej zaktualizowanej odpowiedzi.
Rinkal Bhanderi

2
btw: powstaje rzeczywiste słowo „elipssized”. Nazywa się to „verbing a rzeczownik” i jest powszechnym sposobem tworzenia żargonu komputerowego. Rzeczownik to „elipsa”, którą, jak zakładam, znasz, i jest przekształcana w czasownik poprzez dodanie końcówki „-ize”, co oznacza „przekształcać w”, więc można wywnioskować, że dla „ellipsize” jest dodawanie elipsy do coś".
Michael Edenfield,

4
Stary błąd w pisowni, nigdy nie poprawiony. Termin powinien faktycznie brzmieć „elipsa”. Elipsa jest krzywą na płaszczyźnie otaczającej dwa punkty ogniskowe, tak że linia prosta narysowana od jednego z punktów ogniskowych do dowolnego punktu na krzywej. Elipsa to trzy kropki.
radley

W dokumentacji ellipseSize wciąż brakuje opisu.
Talha

wciąż przecina dla mnie słowa na pół. potrzebuję słów, aby pozostać w jednym kawałku. cholera
filthy_wizard 25.04.17

Odpowiedzi:


388

Dokumentację można znaleźć tutaj .

W zależności od wymagań możesz wypróbować odpowiednią opcję.

elipsyzm , neologizm, oznacza skrócenie tekstu za pomocą elipsy , tj. trzech kropek ...lub częściej ligatury , aby zastąpić pominięte bity.

Powiedz, że oryginalna wartość widoku tekstowego pf to aaabbbccc i jego dopasowanie do widoku

startDane wyjściowe będą: ... bccc

endWyjście będzie: aaab ...

middleWyjście będzie: aa ... cc

marqueeWyjście będzie: automatyczne przesuwanie aaabbbccc od prawej do lewej


Dzięki. Ale już to przeczytałem. Używa słowa „elipssized”, gdy szukam jego znaczenia. Tego słowa nie można używać w jego definicji !! Jakieś dalsze wyjaśnienia, proszę?
Hamzeh Soboh

60

z mojego doświadczenia wynika, że ​​Ellipsis działa tylko wtedy, gdy ustawione są poniżej dwóch atrybutów.

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

jeśli chodzi o szerokość widoku tekstu, wrap_content lub match_parent powinny być dobre.


2
W rzeczywistości android:singleLinebył przestarzały od poziomu API 3, więc zamiast tego użyj android:maxLines. Uwaga:> jeśli podano zarówno singleLine, jak i inputType, flagi inputType zastąpią wartość singleLine. Sprawdź dokumentację na R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona Zauważyłem, że to nie działa, jeśli android: ellipsize = "start" i android: maxLines = "2" (lub więcej). Na początku nie widziałem żadnych kropek, chociaż tekst był zbyt długi.
ka3ak

17

How to Add an ellipsis in a TextView

android: elipssize dodano w API Poziom 1. Elipsa to trzy kropki z rzędu. (...).

W twoim Xml

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

W tym momencie elipsa nie będzie jeszcze wyświetlana, ponieważ TextView jest ustawione na automatyczne rozszerzanie domyślnie po wprowadzeniu nowego tekstu. Będziesz musiał w jakiś sposób ograniczyć TextView. Zrób to, możesz użyć opcji add do swojej, TextView a scrollHorizontally, minLines, or maxLinesaby wyświetlić ekran elipsy.

Aby zrobić elipsę:

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

I

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

I

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

I

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

Uwaga:

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

Aby uzyskać więcej informacji, możesz odwiedzić tutaj

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


10

Elipsa jest trzy okresy z rzędu ...

TextView użyje elipsy, gdy nie może rozwinąć się, aby pokazać cały swój tekst. Atrybut ellipsizedustawia pozycję trzech kropek, jeśli jest to konieczne.


5

Tekst:

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

Załóżmy, że powyższe jest Twój tekst i jeśli używasz ellipsize„s startatrybut będzie widział tak

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

z endatrybutem

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

3

oto przykład, jak działa ellipsize bez użycia przestarzałego android:singleLine="true"w 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" />

pamiętaj, jeśli masz tekst, który powinien znajdować się w jednym wierszu, a następnie zmień maxLines na 1.


Dziękuję to rozwiązanie naprawiło mój problem. Klucz jest android:layout_width="0dp"zamiast android:layout_width="wrap_content". Uwaga: ma to zastosowanie, ponieważ używam ConstraintLayout. Omówiono tutaj także stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Uwaga: twój tekst musi być większy niż pole kontenera, aby następujące markizy:

 android:ellipsize="marquee"    

1

Ustaw tę właściwość, aby edytować tekst. Elipsize działa z wyłączonym edytowaniem tekstu

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

lub setKeyListener (null);


zestaw wyżej wymieniony wszystkie właściwości i setKeyListener (null) oprócz właściwości edytowalnych.
Mubarak

0

Użyj elipssize, gdy masz stałą szerokość, a następnie automatycznie obetnie tekst i pokaże elipsę na końcu,

to nie będzie działać, jeśli ustawisz szerokość układu jako wrap_content i match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.