我有一个Xamarin.Forms应用程序 - 在iOS上一切都运行良好,但我有一个ListView的问题。
当更新集合时,ListView会更新,我可以看到新项目已添加到列表视图的顶部,但不知何故,当我进入时,视图中的最后一项将不再显示(!!!)下到ListView的末尾并尝试拉出ListView我可以看到最后一个项目在那里但默认情况下它没有显示,并且无法访问我无法打开它。
我试图再次重新绑定该集合,做BeginRefresh和EndRefresh但没有任何帮助。有谁有这个问题?或者如何强制列表视图再次渲染?
以下是此问题的示例,您可以在此处看到最后一项是“测试消息”。 (您可以看到框架未完成 - 底部的线未显示)。用户认为这是他的最后一条消息:
然而,如果我拉ListView,我可以开始看到ListView中的最后一条消息:
但如果我的手指离开屏幕,列表视图将返回显示第一张图像,最后两条消息消失。
BTW - 只有当我向ObservableCollection添加新消息时才会出现此问题 - 如果我添加两条新消息,那么最后两个CellView将不会显示,依此类推。此问题仅在iOS上发生(在Android上,它按预期工作)。谢谢, 赛福
答案 0 :(得分:0)
我有一个ListView来显示mnessages,当Add new(在最后)我强制向下滚动列表...也许它对你有用...
var lastMessage = this.listViewMensajes.ItemsSource.Cast<object>().LastOrDefault();
if (null != lastMessage)
{
if(Animated)
{
await Task.Delay(500);
this.listViewMensajes.ScrollTo(lastMessage, ScrollToPosition.Start, true);
}
else
{
this.listViewMensajes.ScrollTo(lastMessage, ScrollToPosition.Start, false);
}
}
动画标志仅用于显示幻灯片效果......
答案 1 :(得分:0)
您还可以添加一个带有空白框视图的页脚,例如:
ListView lv = new ListView{
Footer = new BoxView{
WidthRequest = 30
}
}
你只能在iOS项目中添加它。
答案 2 :(得分:0)
我通过将Xamarin.Forms版本更新为2.3.2.127来修复它。
答案 3 :(得分:0)
我在Xamarin.Forms 3.6.0.344457版本中看到此问题。这是回归还是其他人也有问题?
我在ViewCell中有一个自定义的HtmlLabel-但是删除我的自定义元素并不能解决问题。