我在链接的 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 的位置,它就会变得可见并启动指定的活动(来自 linkify),当我返回时,TextView 总是可见的。如果我将 textDirection 元素更改为 ltr,它应该是可见的,但从错误的方向显示。我尝试过无效化、请求布局、更改文本颜色、设置可见性、确保它有足够的空间、获取文本和一切都应该是它应该的,除了它是不可见的。除了设置文本的大小之外,样式不包含任何相关的内容
有任何提示的人吗?这是在运行 api 17 的手机上