我正在显示文本的TextView,似乎太长,以适合 在一个屏幕上。我需要使我的TextView可滚动。我该怎么办 了吗?

代码如下:

final TextView tv = new TextView(this);
tv.setBackgroundResource(R.drawable.splash);
tv.setTypeface(face);
tv.setTextSize(18);
tv.setTextColor(R.color.BROWN);
tv.setGravity(Gravity.CENTER_VERTICAL| Gravity.CENTER_HORIZONTAL);
tv.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent e) {
        Random r = new Random();
        int i = r.nextInt(101);
        if (e.getAction() == e.ACTION_DOWN) {
            tv.setText(tips[i]);
            tv.setBackgroundResource(R.drawable.inner);
        }
        return true;
    }
});
setContentView(tv);

当前回答

我发现最好的方法是:

用带有这些额外属性的EditText替换TextView:

android:background="@null"
android:editable="false"
android:cursorVisible="false"

不需要在ScrollView中进行包装。

其他回答

这将提供一个滚动条平滑滚动文本。

ScrollView scroller = new ScrollView(this);
TextView tv = new TextView(this);
tv.setText(R.string.my_text);
scroller.addView(tv);

把maxLines和滚动条内TextView在xml。

<TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    android:maxLines="5" // any number of max line here.
    />

然后是java代码。

textView。setMovementMethod(新ScrollingMovementMethod ());

yourtextView.setMovementMethod(new ScrollingMovementMethod());

你现在可以滚动了。

XML -你可以使用android: scrollhorizontal属性

是否允许文本比视图宽(因此可以水平滚动)。

可能是布尔值,如“true”或“false”。

Prigramacaly - setHorizontallyScrolling(boolean)

当你完成了scrollable,当你在视图中输入任何东西时,将这一行添加到视图的最后一行:

((ScrollView) findViewById(R.id.TableScroller)).fullScroll(View.FOCUS_DOWN);