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: