我正在显示文本的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);

当前回答

上面的“专业提示”从某人某处(使TextView可滚动的Android)工作很好,然而,如果你动态添加文本到ScrollView,并希望自动滚动到底部后追加,只有当用户在ScrollView底部?(也许是因为如果用户已经向上滚动阅读了一些内容,你不想在追加过程中自动重置到底部,这很烦人。)

总之,是这样的:

if ((mTextStatus.getMeasuredHeight() - mScrollView.getScrollY()) <=
        (mScrollView.getHeight() + mTextStatus.getLineHeight())) {
    scrollToBottom();
}

mTextStatus.getLineHeight()将使你不scrollToBottom()如果用户是在一行从ScrollView的结束。

其他回答

让你的textview添加这个

TextView textview= (TextView) findViewById(R.id.your_textview_id);
textview.setMovementMethod(new ScrollingMovementMethod());

我没有发现TextView滚动来支持“抛”手势,在那里它继续滚动后,轻弹向上或向下。我最终自己实现了它,因为我不想使用ScrollView,因为各种原因,似乎没有一个MovementMethod可以让我选择文本和点击链接。

试试这个:

android:scrollbars = "vertical"

每当你需要使用ScrollView作为父,你也使用滚动移动的方法与TextView。

当你对你的设备进行竖屏时,会出现一些问题。(如)整个页面是可滚动的,但滚动移动方法不能工作。

如果你仍然需要使用ScrollView作为父或滚动移动方法,那么你也可以使用下面的描述。

如果你没有任何问题,那么你使用EditText而不是TextView

见下文:

<EditText
     android:id="@+id/description_text_question"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@null"
     android:editable="false"
     android:cursorVisible="false"
     android:maxLines="6"/>

这里,EditText的行为类似于TextView

你的问题会解决的

把这个添加到你的XML布局中:

android:ellipsize="marquee"
android:focusable="false"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="To Make An textView Scrollable Inside The TextView Using Marquee"

在代码中,你必须写以下几行:

textview.setSelected(true);
textView.setMovementMethod(new ScrollingMovementMethod());