1

所以我的 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 行,留下一些文本仍然隐藏

4

1 回答 1

0

尝试改用ScrollView.FullScroll方法:

scrollview.FullScroll(Android.Views.FocusSearchDirection.Down)
于 2013-08-07T08:51:52.317 回答