0

リンクされた TextView での RTL サポートに関するいくつかの問題に直面しています。私のコードは次のとおりです。

    final TextView textView = (TextView) findViewById(R.id.where);
        if (textView != null) {
            textView.setAutoLinkMask(0);
            textView.setText(location);
            if (!Linkify.addLinks(textView, Linkify.WEB_URLS |
                    Linkify.EMAIL_ADDRESSES | Linkify.MAP_ADDRESSES)) {
                Linkify.addLinks(textView, mWildcardPattern, "geo:0,0?q=");
            }
            textView.setOnTouchListener(new OnTouchListener() {
                public boolean onTouch(View v, MotionEvent event) {
                    try {
                        return v.onTouchEvent(event);
                    } catch (ActivityNotFoundException e) {
                        // ignore
                        return true;
                    }
                }
            });
        }

そして私のTextViewの場合:

    <TextView
        android:id="@+id/where"
        style="@style/ViewEventStyle.FontSmall.Link"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:paddingBottom="8dp"
        android:layout_marginTop="@dimen/event_view_no_margin"
        android:textDirection="locale"
        android:singleLine="true"
        android:ellipsize="end"/>

RTL 言語が設定されている場合、TextView は表示されませんが、他の言語では通常どおり表示されます。奇妙なことに、TextView の場所に触れると、TextView が表示され、指定されたアクティビティが (linkify から) 開始され、戻ると TextView が常に表示されます。textDirection 要素を ltr に変更すると、正常に表示されますが、間違った方向から表示されます。無効化、レイアウトのリクエスト、テキストの色の変更、可視性の設定、十分なスペースがあることの確認、テキストの取得を試みましたが、非表示であることを除いてすべてが正常です。スタイルには、テキストのサイズの設定以外に関連するものは含まれていません

ヒントがある人はいますか?これは、api 17 を実行している電話です。

4

2 に答える 2

1

私は問題を解決しました。問題は、単一行が真の場合、テキストビューが表示されないことでしたが、代わりに maxLines=1 に変更すると、期待どおりに機能しました。

于 2014-03-31T13:33:40.460 に答える