【发布时间】: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”才能转到链接。生病张贴上面我做了什么。不要认为它只是一个创可贴的永久解决方案。