Wie kann ich definieren unterstrichen Text in einem Android-Layout xml
Datei?
Antworten
Zu viele Anzeigen?I vereinfacht Samuel die Antwort:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--https://stackoverflow.com/a/40706098/4726718-->
<item
android:left="-5dp"
android:right="-5dp"
android:top="-5dp">
<shape>
<stroke
android:width="1.5dp"
android:color="@color/colorAccent" />
</shape>
</item>
</layer-list>
Die am häufigsten gewählte Antwort ist richtig und am einfachsten. Allerdings kann es vorkommen, dass dies bei einigen Schriftarten nicht funktioniert, bei anderen aber schon (auf dieses Problem bin ich gerade beim Umgang mit Chinesisch gestoßen).
Die Lösung ist, "WRAP_CONTENT" nicht nur für die TextView zu verwenden, da es keinen zusätzlichen Platz für das Zeichnen der Linie gibt. Sie können eine feste Höhe für Ihre TextView festlegen, oder Android:paddingVertical mit WRAP_CONTENT verwenden.
- Gehen Sie zur Ressourcendatei strings.xml
- Fügen Sie eine Zeichenfolge in die Ressourcendatei ein, gegebenenfalls mit einem HTML-Unterstreichungs-Tag.
- Rufen Sie den String resource ID in Ihrem Java-Code wie folgt auf:
sampleTextView.setText(R.string.sample_string);
- In der Ausgabe sollte das Wort "Stackoverflow" unterstrichen sein.
Außerdem wird der folgende Code die Unterstreichung nicht drucken:
String sampleString = getString(R.string.sample_string);
sampleTextView.setText(sampleString);
Verwenden Sie stattdessen den folgenden Code, um das Rich-Text-Format beizubehalten:
CharSequence sampleString = getText(R.string.sample_string);
sampleTextView.setText(sampleString);
"Sie können entweder getString(int) oder getText(int) verwenden, um eine Zeichenkette abzurufen. getText(int) behält alle auf die Zeichenkette angewendeten Rich-Text-Stylings bei." Android-Dokumentation.
Siehe dazu die Dokumentation: https://developer.Android.com/guide/topics/resources/string-resource.html
Ich hoffe, das hilft.