2

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>");

奇妙なバンドエイドですが、うまくいきます。

4

1 に答える 1

0

Lt. Tuvok によると (彼はそれを閉じなかったので...): TextView に渡す文字列ですが、html 要素が含まれていますが、html ではありません。終了タグの後にスペースを含めると、空白はクリックできなくなり、「ESPN」をクリックした場合にのみリンクに移動できます。私がしたことの上に投稿します。バンドエイドだけが恒久的な解決策だとは思わないでください。

于 2012-11-10T03:42:00.637 に答える