我有一个屏幕,其中使用堆栈布局和scrollview显示注释列表。用户可以在Xamarin Forms(Android和iOS应用)的滚动 View 的末尾添加一个注释,然后单击“提交”将添加一个注释。要求是向上滚动此列表以显示最新的显示注释元素。为此,我使用了下面的代码行,但它不会向上滚动到最后一个元素,而是倒数第二个元素。我在IOS和Android上都观察到了它。
await scrollView.ScrollToAsync(stkMain, ScrollToPosition.End, true);
下面的图片会给出更多的想法。
如图所示,尽管我已经使用上面的代码滚动到结尾,但是堆栈布局3在屏幕上不可见。我必须向上滚动滚动 View 才能看到堆栈布局3。
预期的行为-滚动 View 应滚动到屏幕上显示的最后一个元素为止。如果我做的不好,请提出建议。
我忘记提及的一件事是,当我在 Debug模式下在具有scrolToAsync方法的行上创建点时。断点击中那条线,如果我击中F5,将使最后一个元素可见。我很惊讶地看到它,但是它发生了
最佳答案
添加新注释元素操作完成后,请增加一些延迟,然后尝试滚动到stkMain
的最后一个子项。
像这样的东西:
var lastChild = stkMain.Children.LastOrDefault();
if(lastChild != null)
scrollView.ScrollToAsync(lastChild, ScrollToPosition.MakeVisible, true);
关于xamarin.forms - Xamarin表单-ScrollView-ScrollToAsync到底部无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039518/