是否无法读取和设置滚动视图的位置?例如,我想启动应用程序,滚动位置位于底部,而不是顶部。
答案 0 :(得分:0)
对于Android,我找到了一个解决方案:
我编写了一个自定义渲染器,在OnDraw
覆盖方法中,我第一次调用方法时调用FullScroll(FocusSearchDirection.Down)
。
简单起见,Android ScrollViewRenderer
是Android.Widget.ScrollView
的子类型。
目前,我不需要iOS的实现,所以我没有iOS的解决方案。
答案 1 :(得分:0)
您可以从ScrollView对象的ScrollX和ScrollY属性获取ScrollView的X和Y位置。然后,您可以使用ScrollView方法ScrollToAsync设置位置。
var x = scrollView.ScrollX;
var y = scrollView.ScrollY;
...
bool animate = false;
scrollView.ScrollToAsync(x, y, animate);
答案 2 :(得分:0)
我有一个更好的方法!
您可以将其添加到onAppearing()方法中:
protected override void OnAppearing()
{
base.OnAppearing();
/*Other stuff*/
viewModel.Messages.CollectionChanged += (sender, e) =>
{
var target = viewModel.Messages[viewModel.Messages.Count - 1];
ItemsListView.ScrollTo(target, ScrollToPosition.End, false);
};
}
这意味着,如果您的集合发生更改,您将获得目标,该目标是您使用scrollTo目标的最后一项(底部的项),位置结束,动画为假。
当您到达页面的底部时,您将看不到滚动,因为动画是错误的!