使用Firemonkey,我创建了一个包含TListView
的列表。我想点击它时更改项目的背景颜色,并且即使我点击列表中的其他项目,也必须保留颜色。
示例:如果用户单击项目AAA ,其颜色将更改为绿色。之后,如果用户点击列表中的其他项目,例如项目BBB ,则此第二项的颜色也将变为绿色,第一项保留绿色颜色。
我已经尝试过这段代码,它没有出错,但也没有改变颜色。
procedure TForm1.lvListasItemClickEx(const Sender: TObject; ItemIndex: Integer;
const LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
var Obj: TFmxObject;
begin
Obj := ListView1.FindStyleResource('itembackground');
if Obj <> nil then
begin
TColorObject(Obj).Color := TAlphaColorRec.Blue;
end;
end;
如何更改所选项目的背景颜色?
编辑:Change Alternating Colors in Firemonkey TListView不是这个问题的副本,因为它是关于更改默认交替颜色,而在这里我想要更改个别项目&#39; s 颜色独立于其他项目。
答案 0 :(得分:0)
我的建议是将TListItemImage添加到listview,将其用作标记或设置其边界以覆盖整个项目并将其用作backgraund。然后,当您单击项目时,更改分配给所选项目的listitemimage对象的图像。
例如:
procedure TForm1.lvListasItemClickEx(const Sender: TObject; ItemIndex: Integer;
const LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
TListItemImage(TListViewItem(lvListasItem.Selected).Objects.FindDrawable('Image1')).Bitmap := Image1.MultiResBitmap.Items[1].Bitmap;
end;