textView.setMovementMethod(LinkMovementMethod.getInstance()) 正在删除 textview 中的对齐方式

问题描述 投票:0回答:1

这是我的 XML 代码:

<TextView
    android:id="@+id/txt_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/img_banner"
    android:justificationMode="inter_word"
    android:paddingEnd="@dimen/margin_size"
    android:paddingStart="@dimen/margin_size"
    android:paddingTop="@dimen/margin_size"
    android:linksClickable="true"
    android:clickable="true"
    android:focusable="true"
    android:autoLink="web"
    android:layout_marginTop="@dimen/spacing"
    android:textSize="15sp" />

并且,我使用此代码来允许

textview
中的可点击链接:

txtView.setMovementMethod(LinkMovementMethod.getInstance());

如果没有

setMovementMethod()
,文本是合理的,但链接不可点击。而且,当我设置
setMovementMethod()
时,链接可单击,但理由被禁用。

java android xml hyperlink
1个回答
0
投票

您面临的问题与理由和 LinkMovementMethod 之间的冲突有关。不幸的是,LinkMovementMethod 不能很好地处理 TextView 中的文本对齐。

一种解决方法是使用 Html.fromHtml 将文本转换为 HTML,然后使用 Linkify 使链接可单击。但是,请记住,Html.fromHtml 在最新版本的 Android 中已被弃用,因此您可能需要使用像 HtmlCompat 这样的库来实现兼容性。

这是一个例子:

This way, you can have clickable links while preserving text justification. However, keep in mind that HTML parsing might not be as feature-rich as native TextView rendering, so you may need to test and adjust your HTML content accordingly.
© www.soinside.com 2019 - 2024. All rights reserved.