首页 文章

当方向发生变化时,如何防止Xamarin Forms ScrollView中的内容卡住?

提问于
浏览
3

假设您有一些包含某些内容的Xamarin Forms ScrollView控件 .

内容是这样的;当设备处于纵向方向时,它完全适合视口,但是当设备处于横向方向时,它会延伸到视口之外 .

问题

当您将设备旋转到横向并将内容滚动到底部时,然后将其旋转回纵向,内容不会重置且无法滚动 - 它现在位于页面的一半 .

这似乎是Xamarin Forms中的一个错误,因为它只发生在iOS而不是Android . 也就是说,可能需要一段时间才能解决问题 . 我正在寻找有关如何在同一时间预防/克服这种情况的建议?可能使用自定义渲染器?

以下是重现该问题的解决方案:https://github.com/afalz/ScrollViewIssue

1 回答

  • 0

    我看到你正在使用一个共享项目(Xamarin.Forms) . 在IOS项目中编程时,您可以设置ScrollView的ContentSize以适应布局的更改(横向,纵向) .

    ScrollView scrollview = new ScrollView();
    scrollview.ContentSize = new RectangleF(x, y, screenHeight, screenWidth);
    

    然后,您可以使用覆盖ViewDidRotate方法并更改ContentSize属性 .

    对于您的示例,我认为您最好实现一个在每次更改屏幕布局时调用的方法,就像ViewDidRotate方法一样,并将ScrollView.Content.HeightRequest更改为新的屏幕大小 .

    我希望这有帮助 . 祝好运!

相关问题