0

使edittext可滚动的问题

有人提到它不能用 singleLine=true 滚动。

所以我有两个选择:

  1. 我检查用户是否输入“\n”并将其删除,那么我也必须担心第二行中的事情。

  2. 我使用了一个循环滚动的自定义文本视图,这也可以在这里仅用于提示吗?

     <com.test.ScrollingTextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginTop="1dp"
            android:layout_weight="0.17"
            android:background="@color/black"
            android:ellipsize="marquee"
            android:gravity="center_vertical"
            android:marqueeRepeatLimit="marquee_forever"
            android:paddingLeft="10dp"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="@string/editLength"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@color/white" />
    

公共类 ScrollingTextView 扩展 TextView {

public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public ScrollingTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public ScrollingTextView(Context context) {
    super(context);
}

@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
    if (focused)
        super.onFocusChanged(focused, direction, previouslyFocusedRect);
}

@Override
public void onWindowFocusChanged(boolean focused) {
    if (focused)
        super.onWindowFocusChanged(focused);
}

@Override
public boolean isFocused() {
    return true;
}

}

我只是无法正确格式化。对此感到抱歉。

4

1 回答 1

1

使您的 EditText 可滚动,如下所示:

EditText yourEditText = new EditText(context);
yourEditText.setScroller(new Scroller(context)); 
yourEditText.setMaxLines(1); 
yourEditText.setVerticalScrollBarEnabled(true); 
yourEditText.setMovementMethod(new ScrollingMovementMethod());
于 2012-07-07T09:18:35.637 回答