Android控制台文本视图

7

我是新手Android开发者。我正在做一个应用程序,它将经过一些流程,在流程中会发生一些事情。因此,我希望在我的活动屏幕上有一个可视化控制台,以查看正在发生的情况。想法是一个文本视图,我插入行,它必须始终在最后一行刷新,并且能够滚动到开始。

我如何在代码中实现这个功能?

谢谢

1个回答

8
如果你有一个固定大小的简单TextView,在一个ScrollView中,它会按照你想要的方式运行。唯一需要做的是确保每次不覆盖现有文本,而是将其附加到末尾。保留对TextView实际内容的引用(一个简单的String就可以),并相应地更新它,然后使用myTextView.setText(newValue) 当你设置TextView的文本时,视图会自动刷新。
<ScrollView android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_weight="1">
    <TextView android:id="@+id/textView" 
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"/>
</ScrollView>

在你的活动中,当你想要将newText添加到你的视图中:

this.currentText += "\n" + newText;
final TextView myTextView = (TextView) findViewById(R.id.textView);
myTextView.setText(currentText);

最后,我建议您向下滚动到最后一行:在ScrollView上调用fullScroll(View.FOCUS_DOWN)


谢谢!我会尝试一下。但是,为什么在ScrollView中你写了两次layout_weight呢?谢谢。 - Frion3L
重量和高度 ;) 重量有点特殊,它与外部布局相关,并用于防止视图占用所有可用空间 - 但这取决于您布局中周围的其他视图。 - Guillaume

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接