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形式で。
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>");
奇妙なバンドエイドですが、うまくいきます。