LoginSignup
6
2

Android リンクをクリックできるHTMLを表示したい(kotlin)

Last updated at Posted at 2024-02-28

この記事でわかること

  • HTMLを表示する
  • リンクをクリックできる

記事を書くきっかけ

アプリ開発中にhtmlを表示するタスクがありました。htmlの表示自体は簡単にできたのですが、リンクをクリックできるようにする時に少し詰まったので記事に残そうと思います。
参考リンク(https://medium.com/@giorgos.patronas1/endless-scrolling-in-android-with-jetpack-compose-af1f55a03d1a

コード

@Composable
fun HtmlText(html: String) {
    val textColor = Color.Black
    val linkColor = Color.Blue
    val spannedText = HtmlCompat.fromHtml(html.trimIndent(), 0)

    AndroidView(
        modifier = Modifier,
        factory = {
            TextView(it).apply {
                movementMethod = LinkMovementMethod.getInstance()
                setTextColor(textColor.toArgb())
                setLinkTextColor(linkColor.toArgb())
                isVerticalScrollBarEnabled = true
                isScrollContainer = true
            }
        },
        update = {
            it.text = spannedText
        },
    )
}

詰まったポイントとしては参考リンクのコードではリンクをクリックしても遷移しなかったことです。原因はlinksClickable = trueが必要なくてmovementMethod = LinkMovementMethod.getInstance()のみを設定してあげるとリンクをクリックして遷移できる状態になります。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2