有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java TextView椭圆在setText()上消失

下午好

我有以下文本视图:

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

我的预期结果是:

...99862214

但相反,我得到的是:

enter image description here

很抱歉背景/文本颜色。不是我的选择

每个按钮都会调用:

mPhoneNumberTextView.append(clickValue);

我的问题是;我做错了什么

编辑: 当我将TextView的安卓:text属性设置为很长的值时,椭圆就如预期的那样设置好了。只有当mPhoneNumberTextView.append(clickValue);运行时,它才会中断


共 (2) 个答案

  1. # 1 楼答案

    android:layout_width="fill_parent"表示你的TextView

  2. # 2 楼答案

    在一阵愤怒中,我在文本视图的左侧添加了一个drawable,每次它被选框时

        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;
        }
    

    这是How to check if a TextView String has been trimmed (marquee)?的一个微小变化