リンクされた 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 を実行している電話です。