我正在使用Delphi XE5创建Delphi Firemonkey移动应用程序。
在选择有孩子的项目时,有没有办法让整个列表向左移动?
我希望用户选择一个列表框项目,如果该项目有子项(有代码检查),则删除项目/父项的当前列表(向左飞出)并替换为所选项目列表孩子(继续这个,直到没有孩子)。
答案 0 :(得分:3)
左边
Listbox1.AnimateFloat('Position.x', -ListBox1.Width, 1.0);
右边的
Listbox1.AnimateFloat('Position.x', 0, 1.0);
第一个参数是您要设置动画的属性的字符串表示形式 第二个参数表示您希望属性设置为动画的新值 第三个参数是持续时间
希望这有帮助!
答案 1 :(得分:2)
您可以使用TTabControl。
procedure TMyForm.lvStationsItemClick(const Sender: TObject;
const AItem: TListViewItem);
begin
MyTabControl.SetActiveTabWithTransition(DetailTab, TTabTransition.ttSlide, TTabTransitionDirection.tdNormal);
end;
如果您想要更好地控制滚动效果(以及更流畅的滚动),请查看FireMonkey Extensions库中的TTabControlEx组件。您的代码看起来像这样:
procedure TMyForm.lvStationsItemClick(const Sender: TObject;
const AItem: TListViewItem);
begin
MyTabControl.SetActiveTabWithTransitionEx(tabStationDetails, TTabTransitionDirection.tdNormal, TInterpolationType.itCubic, 0.2, 1, TAnimationType.atIn);
end;