gpt4 book ai didi

c# - 当方向改变时,如何防止 Xamarin Forms ScrollView 中的内容卡住?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:44 25 4
gpt4 key购买 nike

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

内容是这样的;当设备处于纵向时,它完全适合视口(viewport);但是,当设备处于横向时,它会超出视口(viewport)。

问题

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

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

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

最佳答案

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

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

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

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

希望对您有所帮助。祝你好运!

关于c# - 当方向改变时,如何防止 Xamarin Forms ScrollView 中的内容卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com