Was bedeutet Ellipsize in Android?


199

Ich habe EditTextmeinem Layout ein hinzugefügt, einen Hinweis hinzugefügt und es horizontal zentriert.

Beim Ausführen der Anwendung war der Hinweis unsichtbar. Ich fand, dass ich ellipsizeWert auf das machen sollte, um TextViewzu sein 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" />

In der Android-Dokumentation habe ich gelesen:

Wenn diese
Option aktiviert ist, werden Wörter, die länger als die Ansicht sind, ellipsenförmig anstatt in der Mitte unterbrochen.

Das Problem ist, dass ellipsizees nicht im Wörterbuch gefunden wird. Kann mir jemand erklären, welche Vorteile wir durch ellipsizeAttribute erzielen können ? Und was ist der Unterschied zwischen start, end, middle?


Bitte verweisen Sie auf meine aktualisierte Antwort.
Rinkal Bhanderi

2
Übrigens: Das eigentliche Wort "ellipsized" ist erfunden. Es heißt "Verbing eines Substantivs" und ist eine gebräuchliche Methode, um Computerjargon zu bilden. Das Substantiv ist "Ellipse", von dem ich annehme, dass Sie es kennen, und es wird durch Hinzufügen der Endung "-ize" zu einem Verb gemacht, was "machen in" bedeutet, sodass Sie daraus schließen können, dass "ellipsize" "eine Ellipse hinzufügen" bedeutet etwas".
Michael Edenfield

4
Alter Rechtschreibfehler, nie korrigiert. Der Begriff sollte eigentlich "Auslassungspunkte" sein. Ellipse ist eine Kurve in einer Ebene, die zwei Brennpunkte umgibt, sodass eine gerade Linie von einem der Brennpunkte zu einem beliebigen Punkt auf der Kurve gezogen wird. Ellipse sind die drei Punkte.
Radley

Die Dokumentation von ellipseSize hat noch keine Beschreibung.
Talha

schneidet immer noch Wörter für mich in zwei Hälften. Ich brauche Worte, um in einem Stück zu bleiben. verdammt noch mal
filthy_wizard

Antworten:


388

Dokumentation finden Sie hier .

Je nach Ihren Anforderungen können Sie die entsprechende Option ausprobieren.

zu ellipsize einer neologism, Mitteln abzukürzen Text ein, unter Verwendung von drei Punkten , dh drei Punkte ...oder häufigen Ligatur , in für den weggelassenen Bits zu stehen.

Angenommen, der ursprüngliche Wert der Textansicht ist aaabbbccc und passt in die Ansicht

startDie Ausgabe lautet : ... bccc

endDie Ausgabe lautet : aaab ...

middleDie Ausgabe lautet: aa ... cc

marqueeDie Ausgabe lautet : aaabbbccc wird automatisch von rechts nach links verschoben


Vielen Dank. Aber das habe ich schon gelesen. Es verwendet das Wort "ellipsized", wo ich nach seiner Bedeutung suche. Das Wort kann nicht in seiner Definition verwendet werden !! Irgendwelche weiteren Erklärungen bitte?
Hamzeh Soboh

60

Nach meiner Erfahrung funktioniert Ellipsis nur, wenn unten zwei Attribute festgelegt sind.

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

Für die Breite der Textansicht sollten wrap_content oder match_parent beide gut sein.


2
Eigentlich android:singleLinewar seit API Level 3 veraltet, also stattdessen verwenden android:maxLines. Bitte beachten Sie:> Wenn sowohl singleLine als auch inputType angegeben werden, überschreiben die inputType-Flags den Wert von singleLine. Schauen Sie sich die Dokumente unter R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona Ich habe festgestellt, dass es nicht funktioniert, wenn android: ellipsize = "start" und android: maxLines = "2" (oder mehr). Ich habe am Anfang keine Punkte gesehen, obwohl der Text zu lang war.
Ka3ak

17

How to Add an ellipsis in a TextView

android: Ellipsengröße in API Level 1 hinzugefügt. Eine Ellipse besteht aus drei Perioden hintereinander. (...).

In Ihrer XML

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

Zu diesem Zeitpunkt werden die Auslassungspunkte noch nicht angezeigt, da eine Textansicht so eingestellt ist, dass sie bei der Eingabe von neuem Text standardmäßig automatisch erweitert wird. Sie müssen die Textansicht in irgendeiner Weise einschränken. Wenn Sie dies tun, können Sie entweder Hinzufügen zu Ihrem hinzufügen TextView a scrollHorizontally, minLines, or maxLines, um die Ellipsenanzeige zu erhalten.

So machen Sie die Ellipse:

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

Und

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

Und

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

Und

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

Hinweis Bitte:

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

Weitere Details finden Sie hier

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


10

Eine Ellipse besteht aus drei Perioden hintereinander ...

Die Textansicht verwendet Auslassungspunkte, wenn sie nicht erweitert werden kann, um den gesamten Text anzuzeigen. Das Attribut ellipsizedlegt bei Bedarf die Position der drei Punkte fest.


5

Text:

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

Angenommen, oben ist Ihr Text, und wenn Sie ellipsizedas startAttribut verwenden, wird es so angezeigt

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

mit endAttribut

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

3

Hier ist ein Beispiel dafür, wie Ellipsize funktioniert, ohne android:singleLine="true"in einem ConstraintLayout veraltet zu sein:

<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" />

Denken Sie daran, wenn Sie einen Text haben, der in einer einzelnen Zeile stehen soll, ändern Sie die maxLines in 1.


Vielen Dank, dass diese Lösung mein Problem behoben hat. Der Schlüssel ist android:layout_width="0dp"statt android:layout_width="wrap_content". Beachten Sie, dass dies zutrifft, da ich a verwende ConstraintLayout. Auch hier diskutiert stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Hinweis: Ihr Text muss größer als der Container sein, damit Folgendes angezeigt wird:

 android:ellipsize="marquee"    

1

Legen Sie diese Eigenschaft fest, um Text zu bearbeiten. Elipsize arbeitet mit deaktiviertem Bearbeitungstext

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

oder setKeyListener (null);


set oben erwähnt alle Eigenschaft und setKeyListener (null) außer bearbeitbare Eigenschaft.
Mubarak

0

Verwenden Sie die Ellipsengröße, wenn Sie eine feste Breite haben. Dann wird der Text automatisch abgeschnitten und die Ellipse am Ende angezeigt.

Es funktioniert nicht, wenn Sie layout_width als wrap_content & match_parent festlegen.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.