【发布时间】:2017-10-31 15:52:21
【问题描述】:
我有一个屏幕,它使用堆栈布局和滚动视图显示评论列表。用户可以再添加一条评论,然后单击提交将在 Xamarin Forms - Android 和 iOS 应用程序的此滚动视图的末尾再添加一个 cmets。要求是向上滚动此列表以显示最新的显示评论元素。为此,我使用了下面的代码行,但它不会向上滚动到最后一个元素而是倒数第二个元素。我在IOS和Android都观察到了。
await scrollView.ScrollToAsync(stkMain, ScrollToPosition.End, true);
下面的图片会提供更多关于它的想法。
如图所示,虽然我使用上面的代码滚动到结束,但堆栈布局 3 在屏幕上不可见。我必须向上滚动滚动视图才能看到堆栈布局 3。
预期行为 - 滚动视图应该滚动到屏幕上显示的最后一个元素。如果我做得不对,请提出建议。
我忘记提及的一件事是,当我在调试模式下使用 scrollToAsync 方法创建点时。断点击中那条线,如果我按 F5 将使最后一个元素可见。我很惊讶地看到它,但它确实发生了
【问题讨论】:
-
您是否尝试获取
stkMain的最后一个孩子并滚动到它? -
我忘记提及的一件事是,当我在调试模式下创建具有 scrollToAsync 方法的点时。断点击中那条线,如果我按 F5 将使最后一个元素可见。我很惊讶地看到它,但它确实发生了。
-
这并不奇怪。请记住,渲染方法通常是异步的,并且后面的代码可以在元素在渲染屏幕上可用之前运行。我知道这不是最好的解决方案,但有时我会在运行任何视觉交互之前强制延迟 300 毫秒。 (抱歉英语不好,我还在学习=D)
-
添加延迟会对我有所帮助。
-
同样的问题,@diego 的解决方案不起作用:/