我有一个Xamarin.Forms应用程序-在iOS上一切正常,但我的ListView有一个问题。
当更新集合时,ListView也会更新,我可以看到新项已添加到列表视图的顶部,但不知何故,视图中的最后一项将不再显示(!)当我下到ListView的末尾并尝试向上拉起ListView时,我可以看到最后一个项目在那里,但默认情况下它不显示,并且它不可访问,我无法打开它。
我再次尝试重新绑定集合,尝试执行BeginRefresh和EndRefresh操作,但都无济于事。有人有这个问题吗?或者如何强制列表视图再次呈现?
这是这个问题的一个例子,您可以在这里看到最后一项是“测试消息”。(您可以看到框架不完整-底部的线条没有显示)。用户认为这是他拥有的最后一条消息:

同时,如果我拉出ListView,我可以开始看到ListView中的最后一条消息:

但是,如果我把手指从屏幕上移开,列表视图将返回显示第一个图像,最后两条消息就消失了。
顺便说一句,这个问题只有当我添加新消息到ObservableCollection时才会发生-另外,如果我添加了两个新消息,那么最后两个CellViews将不会显示,以此类推。这个问题只会在iOS上发生(在安卓系统上,它的工作方式和预期一样)。
谢谢,赛义夫。
发布于 2017-04-07 14:12:44
我通过将Xamarin.Forms版本更新到2.3.2.127修复了这个问题。
发布于 2016-11-24 00:35:38
您还可以添加具有空白框视图的页脚,如下所示:
ListView lv = new ListView{
Footer = new BoxView{
WidthRequest = 30
}
}您只能将其添加到iOS项目中。
发布于 2016-11-23 22:57:05
我有一个显示消息的ListView,当添加新的(在最后)时,我强制向下滚动列表……也许这对你很有用..。
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);
}
}动画旗帜只是为了显示幻灯片效果或不显示。
https://stackoverflow.com/questions/40766638
复制相似问题