【问题标题】:Android - html link in TextView around word is making the entire link clickable. How to stop that?Android - TextView 中围绕 word 的 html 链接使整个链接可点击。如何阻止它?
【发布时间】:2013-12-25 00:56:54
【问题描述】:

我有一个应用程序,我在 TextView 中显示动态文本。文字是有

text_view.setMovementMethod(new ScrollingMovementMethod());
text_view.setMovementMethod(LinkMovementMethod.getInstance());

在 TextView 的文本中,我有围绕特定单词的 html 链接。链接有效,但是当您用手指向下滚动页面时,您有时会意外单击链接并意外重定向。

问题似乎是作为链接的词并不是唯一可以点击的东西。页面上的整行似乎都变成了一个链接。

TextView 中的示例文本:

TEAM1 @ TEAM2
STATUS:  FINAL
LINK: ESPN 

假设“ESPN”是列表中唯一可点击的项目。

您对如何纠正此问题有任何想法吗?

加法:

这是我的布局 xml

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:clickable="true"
    android:orientation="vertical"
    android:visibility="visible" >

    <ImageButton
        android:id="@+id/refresh"
        android:layout_width="30dp"
        android:layout_height="28dp"
        android:layout_gravity="right"
        android:src="@drawable/ic_menu_refresh"
        android:visibility="visible" />

  <TextView
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/widget_date"
      android:layout_width="fill_parent"
      android:layout_height="70dp"
      android:textSize="12dp"
      android:visibility="visible" />

  <TextView
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/widget_text"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:textSize="16dp"
      android:visibility="visible" />

</LinearLayout>

然后在我的代码中,我将围绕 ESPN 一词设置 html 链接,如下所示: 循环数据并根据追加到较大字符串的数据创建动态链接,下面TextView中设置的字符串分数只是一个包含html格式字符串“link”的字符串。

String link = "LINK: " + "<a href = \""+ game.getUrl() +  "\">ESPN</a><BR><BR>");
text_view.setText(Html.fromHtml(scores));

当一切都说完了,我得到了我需要的东西。唯一的问题是,当您开始用手指向下滚动页面时,您有时会启动链接,因为链接似乎跨越了整行,包括空格。所以你的手指偶尔会不小心碰到每个人的链接。我想要的只是当你专门点击“ESPN”这个词而不是空白处时,链接才会启动。

将字符串更改为在结束标记后实际包含空格,使空格不再可点击。

"LINK: " + "<a href = \""+ game.getUrl() +  "\">ESPN</a>             <BR><BR>");

奇怪的创可贴,但它有效。

【问题讨论】:

  • 当然,我发布了一些额外的细节以使事情更清楚。
  • 您是 100% 正确的,这就是问题所在。如果我单击具有 ESPN 的同一行上的任何位置,甚至是空白,它将执行链接并重定向到浏览器。这使得滚动有点困难。至于\,我只是在转义双引号。
  • 好吧,我刚刚找到了解决方案。我最终传递给 TextView 的字符串,虽然它包含 html 元素,但它不是 html。如果我在结束 标记后包含空格,则空格不再可单击,并且只有单击“ESPN”才能转到链接。生病张贴上面我做了什么。不要认为它只是一个创可贴的永久解决方案。

标签: android textview


【解决方案1】:

Per Lt. Tuvok(因为他没有关闭它......):我最终传递给 TextView 的字符串,虽然它包含 html 元素,但它不是 html。如果我在结束标记后包含空格,则空格不再可单击,并且只有单击“ESPN”才能转到链接。生病张贴上面我做了什么。不要认为它只是一个创可贴的永久解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 2011-02-13
    • 2015-04-27
    • 1970-01-01
    • 2016-04-07
    • 2012-09-07
    相关资源
    最近更新 更多