这是我的 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()
时,链接可单击,但理由被禁用。
您面临的问题与理由和 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.