所以我的 C# Android 应用程序上有一个多行 TextView。我将其用作一种“状态”记录器..
所以,我可能有这样的事情:
探测小部件 找到合适的小部件
配置小部件
每行可能需要几秒钟才能出现,因为它相对较慢。
因此,我在 ScrollView 中有一个 TextView,如下所示:
<ScrollView
p1:minWidth="100px"
p1:minHeight="100px"
p1:layout_width="fill_parent"
p1:layout_height="match_parent"
p1:id="@+id/scrollView1">
<TextView
p1:id="@+id/terminalOutput"
p1:layout_width="fill_parent"
p1:layout_height="fill_parent" />
</ScrollView>
这很好用,我可以使用该.Append
方法附加到 TextView 。然而,问题在于最终有太多的状态消息以致文本消失并离开屏幕。此时,您必须在滚动视图中手动拖动才能阅读最新的状态消息。
我想要它,以便每当附加一段文本并且它离开屏幕以向下滚动滚动视图,以便用户无需手动滚动即可阅读最新消息。
我怎样才能做到这一点?
这是我迄今为止尝试过的:
Logger = new TextLogger((s) =>
{
RunOnUiThread(() =>
{
var textview=FindViewById<TextView>(Resource.Id.terminalOutput);
textview.Append(s + "\n");
var scrollview=FindViewById<ScrollView>(Resource.Id.scrollView1);
scrollview.ScrollTo(0,scrollview.Bottom);
textview.ScrollTo(0, textview.Bottom);
});
});
这种作品,但似乎它永远不会完全滚动到实际底部。它向下滚动,但总是距离底部 2 行,留下一些文本仍然隐藏