Android-Arsenal – HTML
Android-Bibliothek, die HTML-Unterstützung für Jetpack Compose-Texte bereitstellt.
Konfiguration
Zur höchsten Ebene hinzufügen gradle.build Datei
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
Fügen Sie ein Anwendungsmodul hinzu gradle.build Datei.
dependencies {
implementation 'com.github.ireward.compose-html:1.0.1'
}
Benutzen
Fürs Erste komponiert Text
das Layout bietet keine HTML-Unterstützung. Diese Bibliothek füllt diese Lücke, indem sie das Komponierte entdeckt HtmlText
Zeitplan, der darauf aufbaut Text
Zeitplan u Span/Spannable
Android-Klasse. Seine API ist wie folgt:
HtmlText(
text = htmlString,
linkClicked = { link ->
Log.d("linkClicked", link)
}
)
Und dies sind alles verfügbare Parameter, mit denen Sie das Standardverhalten ändern können:
fun HtmlText(
text: String,
modifier: Modifier = Modifier,
style: TextStyle = TextStyle.Default,
softWrap: Boolean = true,
overflow: TextOverflow = TextOverflow.Clip,
maxLines: Int = Int.MAX_VALUE,
onTextLayout: (TextLayoutResult) -> Unit = {},
linkClicked: (String) -> Unit = {},
fontSize: TextUnit = 14.sp,
flags: Int = HtmlCompat.FROM_HTML_MODE_COMPACT,
URLSpanStyle: SpanStyle = SpanStyle(
color = linkTextColor(),
textDecoration = TextDecoration.Underline
)
)
HtmlText
unterstützt fast genauso viel HTML-Tags als android.widget.TextView
funktioniertmit Ausnahme <img>
Etikett und <ul>
da letzteres teilweise unterstützt wird, wie HtmlText
zeigt Listenelemente korrekt an, fügt jedoch keine Markierung hinzu (•)
Was folgt, sind Screenshots aus der begleitenden Präsentations-App, die sich in demselben Repo befindet, wo alle HTML-Tags zum Vergleich nebeneinander angezeigt werden HtmlText
mit android.widget.TextView
: