我在xamarin表单项目中有一个列表视图,该列表视图的顶部包含最新项目。滚动到底部时,我可以查看其余项目。
现在我需要在底部显示最近的项目,向上滚动时需要显示剩余的项目?就像WhatsApp聊天窗口一样。
我该怎么做?预先感谢
答案 0 :(得分:1)
要实现此目的,我们将把ListView和ViewCells主布局旋转到180度,以便列表从底部开始,但是现在,滚动条将出现在左侧。要解决此问题,我们将使用属性FlowDirection
(在Xamarin Forms 3.0版中已发布)。
因此,在ListView中,我们将设置以下两个属性:
FlowDirection="RightToLeft"
Rotation="180"
在视图单元格的主要布局中:
FlowDirection="LeftToRight"
Rotation="180"
请注意,既然ListView和ViewCells已经旋转,那么您应该考虑将ListView的底部放在顶部。
有关更多信息,请阅读this
答案 1 :(得分:0)
我建议您在项目中添加一个时间戳或索引属性(任何允许您确定如何对其进行排序的方法(也请在view.xaml.cs文件的顶部定义“使用Linq;”)。
然后,在设置ListView的ItemsSource时,您可以说:
ListView.ItemsSource = models.OrderBy(entry => entry.TimeStamp);
如果使用DataBinding,则可以选择将属性添加到视图中以相同的方式返回模型:
public List<EntryModel> SortedEntryList
{
get { return entrymodels.OrderBy(entry => entry.TimeStamp); }
}
我假设您有某种要添加到ListView的List或ObservableCollection。