Xamarin形式:如何将列表视图的滚动行为从下到上更改?

时间:2018-11-08 09:41:31

标签: listview scroll xamarin.forms

我在xamarin表单项目中有一个列表视图,该列表视图的顶部包含最新项目。滚动到底部时,我可以查看其余项目。

现在我需要在底部显示最近的项目,向上滚动时需要显示剩余的项目?就像WhatsApp聊天窗口一样。

我该怎么做?预先感谢

2 个答案:

答案 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。