我已经自定义了Firmeonkey列表框项目的样式,现在它可以包含4个TLable。每个标签都将Alignment作为alNone。 每当我需要添加任何项目时,我都会在我的代码中设置每个位置。我观察到当我的列表有滚动条并且第一个组件不可见时(即我已经足够向下滚动),如果我再次在列表框中添加所有项目,那么该位置第一项(或未显示的项目)中的TLabel变形。
我在下面的代码中设置位置:
(tmpListBoxItem.FindStyleResource('txtCol2') As TLabel).Position.X :=
(tmpListBoxItem.FindStyleResource('txtCol2') As TLabel).Position.X + (tmpListBoxItem.FindStyleResource('txtCol2') As TLabel).Width;
任何建议,我如何克服这个问题。
此致 Padam Jain
答案 0 :(得分:0)
当组件出现并从屏幕上消失时,Firemonkey样式会反复“应用”并“释放”。
仅仅设置一次样式对象的属性并期望记住这些值是不够的。您需要做的是监听OnApplyStyleLookup事件或覆盖自定义组件的ApplyStyle方法,并使用上面相同的方法再次设置属性。
这意味着您需要在某处存储您要设置的值。
我建议您将TListBoxItem子类化,以便添加合适的属性或字段,并将代码放入ApplyStyle。