链接的textview在RTL中不可见

时间:2013-09-18 08:58:08

标签: android android-layout textview right-to-left

我在链接的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的手机上

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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