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

有任何提示的人吗?这是在运行 api 17 的手机上

4

2 回答 2

1

我解决了这个问题,问题是当单行为真时,textview 将是不可见的,但如果我将其更改为 maxLines=1,它会按预期工作。

于 2014-03-31T13:33:40.460 回答
0

不知道它是否仍然相关或是否已连接(我会将其作为评论发布,除非我没有足够的声誉 - 但 :) 但我在 RTL 上遇到了很多问题,其中一些类似,在 API 上运行时17.按钮消失等。尝试在4.3上运行它?我不能确定这是问题所在,因为对我来说问题出在布局中:显然,在 4.2.2=17 中,如果有 Left 和 Start 元素,它们都会以某种方式被考虑在内,所以你必须留下一个,但在您的 xml 片段中没有。也许在文件的其余部分——在这种情况下也试试这个(如果你只在 >=17 上运行,使用开始/结束,否则你将不得不复制布局)

于 2013-11-27T21:59:36.827 回答