Xamarin формы: Как изменить поведение прокрутки списка вниз снизу вверх? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть список в моем проекте форм xamarin, который содержит самый последний элемент сверху. При прокрутке вниз я могу просмотреть остальные элементы.

Теперь мне нужно показать последний элемент внизу, а при прокрутке вверх показать остальные элементы? То же, что и окно чата в WhatsApp.

Как я могу это сделать? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Для достижения этой цели мы собираемся повернуть основной макет ListView и ViewCells на 180 градусов, чтобы список начинался снизу, но при этом полоса прокрутки теперь появится с левой стороны. Чтобы исправить это, мы будем использовать свойство FlowDirection (выпущено в версии 3.0 Xamarin Forms).

Итак, в ListView мы собираемся установить эти два свойства:

FlowDirection="RightToLeft"
Rotation="180"

А в ячейках вида основной макет:

FlowDirection="LeftToRight"
Rotation="180"

Имейте в виду, что теперь, когда ListView и ViewCells повернуты, вы должны учитывать, что нижняя часть вашего ListView находится сверху.

Подробнее читайте это

0 голосов
/ 08 ноября 2018

Я бы предложил добавить к вашим элементам метку времени или свойство индекса (все, что позволяет вам определить способ их сортировки (также определите «используя Linq;» в верхней части вашего файла view.xaml.cs).

Тогда при настройке источника элементов в ListView вы можете сказать:

ListView.ItemsSource = models.OrderBy(entry => entry.TimeStamp);

Если вы используете DataBinding, вы также можете добавить свойство в ваше представление, чтобы вернуть ваши модели таким же образом:

public List<EntryModel> SortedEntryList
{
    get { return entrymodels.OrderBy(entry => entry.TimeStamp); }
}

Я предполагаю, что у вас есть какая-то коллекция List или ObservableCollection, которую вы добавляете в ListView.

...