Доброго времени суток!
Так вышло, что в мобильных приложениях мы часто используем списки для отображения информации и самый гибкий и удобный компонент это TListView. Но часто стандартного функционала нам не достаточно, поэтому я решил его немного доработать.
В этом посте я вкратце расскажу о ModernLV
ModernLV - это надстройка над стандартным TListView. Модуль не нужно устанавливать, достаточно положить в папку с проектом и вам будут доступны все эти улучшения.
ВАЖНО: Все методы и свойства доступны кодом
Начну с самых значимых изменении:
Так вышло, что в мобильных приложениях мы часто используем списки для отображения информации и самый гибкий и удобный компонент это TListView. Но часто стандартного функционала нам не достаточно, поэтому я решил его немного доработать.
В этом посте я вкратце расскажу о ModernLV
ModernLV - это надстройка над стандартным TListView. Модуль не нужно устанавливать, достаточно положить в папку с проектом и вам будут доступны все эти улучшения.
ВАЖНО: Все методы и свойства доступны кодом
Начну с самых значимых изменении:
- Отрисовка Item'ов как вертикально так и горизонтально
ListView1.Horizontal := true/false;
- В режиме колонок можно отобразить несколько Item'ов в один ряд
ListView1.ColumnWidth := 160; ListView1.AutoColumns := true;
- Появилась покраска всех элементов (header, footer, separator, item, background, etc...), теперь не нужно владеть навыками создания стилей, можно все указать цветом.
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); ListView1.SetColorItemFill(TAlphaColorRec.Whitesmoke); ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); ListView1.SetColorBackground(TAlphaColorRec.Whitesmoke); ListView1.SetColorItemSeparator(TAlphaColorRec.Red); ListView1.SetColorText(TAlphaColorRec.Darkmagenta); ListView1.SetColorTextSelected(TAlphaColorRec.Blueviolet); ListView1.SetColorTextDetail(TAlphaColorRec.Darksalmon); ListView1.SetColorHeader(TAlphaColorRec.Crimson); ListView1.SetColorTextHeader(TAlphaColorRec.Whitesmoke); ListView1.SetColorTextHeaderShadow(TAlphaColorRec.grey); ListView1.SetColorPullRefresh(TAlphaColorRec.Lime); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Limegreen); ListView1.SetColorStretchGlow(TAlphaColorRec.Limegreen);
if ListView1.IsCustomColorUsed(ListView1.ItemIndex) then ListView1.SetDefaultColorForItem(ListView1.ItemIndex) else ListView1.SetCustomColorForItem(ListView1.ItemIndex, TAlphaColorF.Create(random(255) / 255, random(255) / 255, random(255) / 255, random(255) / 255).ToAlphaColor);
- Новые события (Events)
procedure OnColumnClick(const Column: Integer; const X, Y: Single; const AItem: TListViewItem; const DrawebleName: string);
Для уведомления о достижении конца списка появилось событие OnScrollEnd
procedure OnScrollEnd(Sender: TObject);
- Показать всё, что скрыто... от разработчика
ListView1.ShowScrollBar := true/false;
Добавляет отступ от первого элемента
ListView1.OffsetTop := 20;
Добавляет отступ от последнего элемента
ListView1.OffsetBottom := 20;
Узнаем первый видимый Item
ListView1.getFirstVisibleItemIndex
Узнаем последний видимый Item
ListView1.getLastVisibleItemindex
Количество видимых Item'ов
ListView1.getVisibleCount
Добавляет отступ слева для разделительной линии
ListView1.SeparatorLeftOffset := 5;
Добавляет отступ справа для разделительной линии
ListView1.SeparatorRightOffset := 5;
Включаем/отключаем эффект нажатия (на мобильных платформах)
ListView1.EnableTouchAnimation(true/false);
Доступ к TAniCalculations, например для включение/отключения BoundsAnimation
if ListView1.getAniCalc <> nil then ListView1.getAniCalc.BoundsAnimation := false;
На этом наше знакомство заканчиваю, в следующих постах постараюсь подробней описать режим колонок, горизонтальный режим, динамическую загрузку картинок и прочие возможности TListView
Для подробного ознакомления можно посмотреть скриншоты и демо на GitHub'e
Для подробного ознакомления можно посмотреть скриншоты и демо на GitHub'e
Комментариев нет :
Отправить комментарий