Перейти к содержанию
Fire Monkey от А до Я
  • 0

ListView Color Helper


Равиль Зарипов (ZuBy)

Вопрос

  • Модераторы

Привет Всем!

Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его

Вот что получилось

2015-10-23 19-54-21 Скриншот экрана.png   2015-12-24 15-10-35 Form4.png

LV_Helper.zip                                                                  ColorListView.zip

Доступно для Seattle

  ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный
  ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item
  ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item
  ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView
  ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов

  ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст
  ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст
  ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы
  ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка
  ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста

  ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки
  ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки

добавлено в Berlin

    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange);
    ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered);
    ListView1.SetColorStretchGlow(TAlphaColorRec.Lime);

ModernListView.rar

Изменено пользователем ZuBy
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

Добрый день подскажите  а можно установить конкретный  цвет  для  одного итема ? при заполнении  циклом ? 

нет, но могу скинуть измененный ListView с покраской конкретных Item'ов

Ссылка на комментарий
  • 0

 

Добрый день подскажите  а можно установить конкретный  цвет  для  одного итема ? при заполнении  циклом ? 

нет, но могу скинуть измененный ListView с покраской конкретных Item'ов

 

спасибо буду очень благодарен  ) 

Ссылка на комментарий
  • 0
  • Модераторы

post-59-0-03655500-1450948247.png

версия для Seatle ColorListView.zip

 

весь код для отрисовки кастомного цвета 

1) копируем себе и открываем FMX.ListView

2) Ctrl+F -> DrawItemsFill

3) Вставляем код

// отрисовываем кастомный цвет...........................................
// procedure TListViewBase.DrawItemsFill(const StartItem.................
 if TListViewItem(ListItem).Data['aUseCustomColor'].AsBoolean then
    FBrush.Color := TListViewItem(ListItem).Data['aCustomColor'].AsInteger;
// ......................................................................

после

if FAlternatingColors and (AltIndex mod 2 = 1) then
  FBrush.Color := FItemStyleFillAltColor;

4) Подключаем в своём проекте после стандартного FMX.ListView

Изменено пользователем ZuBy
Ссылка на комментарий
  • 0
  • Модераторы

версия для берлина

  • Раскраска ListView
  • Кастомный цвет для определенного Item'a
  • Отступы для разделителей 
  • Определение Index'a верхнего Item'a
  • Кол-во видимых элементов

Показано как можно реализовать интерфейс день/ночь

ModernListView.rar

 

Изменено пользователем ZuBy
обновил вложение
Ссылка на комментарий
  • 0

ZuBy, почему-то в примере текст с кнопок пропадает (похоже после нажатия Изменить цвет и при переключении Switch-а).

PS. Windows/Android

Изменено пользователем Rusland
Ссылка на комментарий
  • 0
  • Модераторы
2 часа назад, Rusland сказал:

ZuBy, почему-то в примере текст с кнопок пропадает (похоже после нажатия Изменить цвет и при переключении Switch-а).

PS. Windows/Android

да заметил, решение пока не нашел. не понятно почему текст начал пропадать

Ссылка на комментарий
  • 0
  • Модераторы
В 07.07.2016 в 14:22, Rusland сказал:

ZuBy, почему-то в примере текст с кнопок пропадает (похоже после нажатия Изменить цвет и при переключении Switch-а).

PS. Windows/Android

можете проверить у себя:

  • кидаем TListView на форму
  • ставим anchors или align
  • ItemApperance = ImageListItemBottomDetailRightButton
  • запускаем и делаем ресайз формы
  • текст пропадает с кнопки
  • Profit?

У меня это воспроизводится в голом проекте, FMX.ListView.pas не изменен

Ссылка на комментарий
  • 0
  • Модераторы
В 09.07.2016 в 10:25, ZuBy сказал:
В 07.07.2016 в 14:22, Rusland сказал:

ZuBy, почему-то в примере текст с кнопок пропадает (похоже после нажатия Изменить цвет и при переключении Switch-а).

PS. Windows/Android

можете проверить у себя:

  • кидаем TListView на форму
  • ставим anchors или align
  • ItemApperance = ImageListItemBottomDetailRightButton
  • запускаем и делаем ресайз формы
  • текст пропадает с кнопки
  • Profit?

У меня это воспроизводится в голом проекте, FMX.ListView.pas не изменен

добавление Item'ов

  for I := 0 to 20 do
  begin
    AItem := ListView1.Items.Add;
    with AItem do
    begin
        Text := 'Item Random ' + I.ToString;
        Detail := 'Detail for ' + Text;
        ButtonText := 'Custom Color';
        Bitmap := Image1.Bitmap;
    end;
    ListView1.Adapter.ResetView(AItem); // fix TextButton ( TListViewTextButtonFix )
  end;

устраняем багу

procedure TForm1.ListView1UpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean);
begin
  TListViewTextButtonFix.Rendering(Sender, AItem, AHandled); // fix
end;

FMX.ListView.TextButtonFix.zip

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...