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 singleLine
niet 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:ellipsize
werkt 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:maxLength
had geen effect, dus ik speelde met android:maxWidth
en 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.