1

下午好。

我有以下文本视图:

<TextView android:id="@+id/keypadwidget_number"
    android:tag="@string/phone_number_tag"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:textSize="30sp"
    android:ellipsize="start"
    android:scrollHorizontally="true"
    android:gravity="right"
    android:singleLine="true"
    android:textColor="@color/widget_text"
    android:layout_toLeftOf="@+id/keypadwidget_btn_delete"/>

我的预期结果是:

...99862214

但相反,我得到:

在此处输入图像描述

对不起背景/文字颜色。不是我的选择!

这些按钮中的每一个都调用:

mPhoneNumberTextView.append(clickValue);

我的问题是;我究竟做错了什么?

编辑: 当我将 TextView 的 android:text 属性设置为非常长时,椭圆设置为预期。它是在mPhoneNumberTextView.append(clickValue);运行时中断的。

4

2 回答 2

0

一怒之下,我在文本视图的左侧添加了一个可绘制对象,每次它被选中时。

    private boolean isMarqueed(TextView tv){
        return isMarqueed(tv.getText().toString(), mPhoneNumberTextView.getWidth(), mPhoneNumberTextView);
    }

    private boolean isMarqueed(String text, int textWidth, TextView tv) {
        Paint testPaint = new Paint();
        testPaint.set(tv.getPaint());
        boolean isMarquee = true;
        if (textWidth > 0) {
            int availableWidth = (int) (textWidth - tv.getPaddingLeft() - tv.getPaddingRight()-testPaint.measureText(text));
            if(availableWidth > 0)
                isMarquee = false;
        }
        return isMarquee;
    }

哪个是如何检查 TextView 字符串是否已被修剪(选取框)的轻微变化?

于 2013-08-28T09:59:23.833 回答
0

用于android:layout_width="fill_parent"您的TextView

于 2013-08-27T16:31:38.617 回答