ios - Xamarin.Forms - 强制重绘 ListView 布局

标签 ios listview xamarin xamarin.forms redraw

我有一个带有 HasUnevenRows = true 的 ListView,其中每个单元格的内容开始时都是不同的,但内容也可以动态更改(通过单击单元格中的按钮) .当 ListView 最初加载时,系统必须执行计算,以便根据内容正确确定和绘制每个单元格的高度。

但是当我在初始加载后更新内容时,同样的计算显然没有完成,因为单元格的高度不会改变——直到我将该项目滚动到 View 之外然后回到视野中。

如何在不完全刷新 ListView 的情况下强制执行相同的计算并手动重绘?

我尝试将 ListView 包装在框架中并在框架上调用 .ForceLayout(),但没有成功。

最佳答案

默认情况下不会重新计算单元格的高度,因为这是一个昂贵的过程。如果您想强制调整大小,您需要在单元格上调用 ForceUpdateSize()

注意:这不适用于旧版本的 Xamarin Forms。它是在 2.0.0.0 中添加的,但请尝试至少更新到 2.2.0.31

关于ios - Xamarin.Forms - 强制重绘 ListView 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414063/

相关文章:

Java:推送通知已发送但未收到

ios - (Swift 3)我需要向用户发送通知以在特定时间打开应用程序。使用本地通知还是推送通知更好?

java - ListView Viewholder 复选框状态

android - 在 OnItemClick 之后在 ListView 中显示来自数据库的游标结果

xamarin.ios - 无法使用 Xamarin 和 MvvmCross 从 XIB UI 创建 View

ios - NSURLResponse - 如何获取状态码?

ios - Comicmind Material Framework 按钮事件处理程序

java - fragment 上的自定义 ListView - 无法使用 getActivity()

xamarin - 如何将 HTML 添加到 Xamarin 表单中 ScrollView 内的 Stacklayout?

c# - IOS上的OnAppearing方法