移动Firemonkey - Animate列表框(向左飞)

时间:2013-12-18 16:10:15

标签: delphi firemonkey delphi-xe5

我正在使用Delphi XE5创建Delphi Firemonkey移动应用程序。

在选择有孩子的项目时,有没有办法让整个列表向左移动?

我希望用户选择一个列表框项目,如果该项目有子项(有代码检查),则删除项目/父项的当前列表(向左飞出)并替换为所选项目列表孩子(继续这个,直到没有孩子)。

2 个答案:

答案 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;