Hoe 3 stippen aan het einde van tekst in tekstweergave weer te geven

Ik weet dat deze vraag vaak wordt gesteld, ik heb alle oplossingen doorlopen, maar het probleem is nog steeds hetzelfde.

ik wil dat de lengte van mijn tekst 50 tekens is. nu komt het in 2 regels.

Hieronder is wat ik deed:

<TextView
            android:id="@+id/notification_Message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/notification_head"
            android:layout_centerHorizontal="true"
            android:layout_margin="10dp"
            android:gravity="center"
            android:ellipsize="end"
            android:maxLength="50"
            android:text=" Hello developer. please check this message for long length. max length to 50 characters. "   
            android:textSize="20sp" />

De tekst hier is slechts een voorbeeldtekst die ik heb toegevoegd. het toont geen 3 stippen aan het einde, maar toont een bericht van maximaal 50 tekens. ik heb ook max linesgeprobeerd, ook single line false. maar geen positief resultaat.
Ik wil dit ding ook niet programmatisch afhandelen door logisch drie stippen toe te voegen.

Help alstublieft


Antwoord 1, autoriteit 100%

Maak een vooraf ingestelde breedte voor uw TextView en voeg deze attributen toe (Shout-out to @T-D)

android:ellipsize="end"
android:maxLines="1"

De maxLines zorgt ervoor dat uw tekst niet in twee regels wordt weergegeven en de ellipsgrootte voegt aan het einde de drie punten toe.

Oud antwoord

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

Antwoord 2, autoriteit 37%

Voor tekst van één regel met een punt, maar nu is het Verouderddus gebruik singleLineniet meer

Dankzij dit bericht heb ik ontdekt dat het voor mij werkt om de punt na het einde van de tekst weer te geven als we meer één regel hebben 🙂

android:ellipsize="end"
android:maxLines="2"

Plaats hier dit antwoord omdat alle antwoorden hier voor één regel zijn, niet voor meerdere regels


Antwoord 3, autoriteit 12%

android:ellipsizewerkt alleen met:

android:singleLine="true"

of

android:maxLines="#any number#"
android:scrollHorizontally="true"

Omdat maxLength de tekst afkapt.

Dus je moet het label met code beheren als je slechts 50 tekens + punten wilt weergeven, of twee regels voor de tekstweergave.

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="2"
    android:scrollHorizontally="true"
    android:text="Hello developer. please check this message for long length. max length to 50 characters."
    android:textSize="20sp" />

Antwoord 4, autoriteit 7%

De android:singleLine="true"is verouderd

beter gebruiken

android:maxLines="1"

en android:ellipsize="end"om “…”toe te voegen aan het einde van de tekst


Antwoord 5, autoriteit 4%

Gebruik singleLine = "true"
voor limiettekst door singleLine


Antwoord 6, autoriteit 4%

Ook ik worstelde hiermee. android:maxLengthhad geen effect, dus ik speelde met android:maxWidthen het werkte.

Bekijk mijn fragment hieronder.

<TextView
        android:id="@+id/tv_comment_author"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxWidth="120dp"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="@string/dummy_text"/>

Antwoord 7, autoriteit 3%

De aanpak van @Lokesh werkt prima.

android:ellipsize="end"
android:maxLines="2"

Maar ik realiseer me een probleem dat TextView per woord wordt afgekapt (standaard). Laat zien of we een tekst hebben zoals:

long_line_without_any_space_abcdefgh testen

de TextView zal weergeven:

test…

En ik heb een oplossing gevonden om dit probleem aan te pakken, spaties te vervangen door het unicode no-break spatieteken, het zorgt ervoor dat TextView zich om tekens heen laat lopen in plaats van woorden:

yourString.replace(" ", "\u00A0");

Het resultaat:

test long_line_without_any_space_abc…


Antwoord 8

Maak uw aangepaste TextView:

<com.xyz.CustomizedTextViewName
        android:id="@+id/app_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:ellipsize="end"
        android:singleLine="true"
        android:maxEms="10"
        app:typeface="roboto_bold"/>

Antwoord 9

Dit is het antwoord dat je zoekt:

   <TextView
        android:id="@+id/tv_title"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="wrap_content"
        android:text="Title"
        android:maxLines="1"
        android:ellipsize="end"
        android:maxWidth="195dp"
        android:textColor="@color/white"
        android:textSize="14dp"
        android:gravity="center"
        />

Antwoord 10

<TextView
            android:id="@+id/txt__customizer_item"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:gravity="center"
            android:paddingRight="20dp"
            android:singleLine="true"
            android:text=" Hello developer. please check this message for long length. max length to 50 characters. "
            android:textAppearance="@android:style/TextAppearance.Medium"
            android:textColor="@color/light_blue"
            android:textSize="20sp" />

Dit werkt voor mij. Geef opvulling vanaf de rechterkant. Het toont automatisch …


Antwoord 11

u kunt dat doen met xml:

<TextView 
    android:id="@+id/textview"
    android:maxLines="1" // or any number of lines you want
    android:ellipsize="end" />

Antwoord 12

Als singleLine="true"wordt afgeprijsd in xml, wilt u toch een enkele regel gebruiken, gebruik dan tv.setSingleLine(true);methode in code.

Other episodes