- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
对于我的应用程序,当显示新表单时,我希望在它们看起来有点类似于 Tab 项在幻灯片过渡中的显示方式时有一个过渡幻灯片 - 好吧,实际上以相同的方式。
我无法找到与具体问题相关的任何疑难解答或示例。我能想到的唯一解决方法是对所有三种窗体使用选项卡控件并将它们放在选项卡控件中。
我也尝试过 Form.animateFloatWait()
函数,就像通常对表单控件所做的那样,但无济于事。
如何让我的表单在 View 中滑动?
最佳答案
使用 RAD Studio XE5,Delphi 或 C++ Builder,表单全屏显示。
因此,如果我们需要做一些滑动切换的效果,就需要使用TPanel来获得完美的性能:
添加一个 TPanel,将其设置为全尺寸,但不要使用对齐方式。我们需要在FormCreate方法中初始化TPanel的位置和大小。
为表单创建第二个 TPanel,不要让第二个 TPanel 成为第一个 TPanel 的子级。初始化第二个TPanel的位置和大小,确保它位于屏幕右侧。
表单创建方法:
procedure TFormMainView.FormCreate(Sender: TObject);
var
newLocation : TPosition;
begin
newLocation := self.btnLogin.Position;
newLocation.X := screen.Size.Width - self.btnLogin.Width - 5;
self.btnLogin.Position := newLocation;
self.PanelMainView.Position.X := 0;
self.PanelMainView.Position.Y := 0;
self.PanelMainView.Width := screen.Size.Width;
self.PanelMainView.Height := screen.Size.Height;
self.PanelLogin.Position.X := screen.Size.Width;
self.PanelLogin.Position.Y := 0;
self.PanelLogin.Width := screen.Size.Width;
self.PanelLogin.Height := screen.Size.Height;
end;
通过 Screen.Size,我们可以确保 TPanel 可以适应各种尺寸的设备,例如 Android 手机。并在第一个和第二个 View 上设置一个按钮,以切换幻灯片动画(第一个面板上的按钮切换动画向左滑动,第二个面板上的按钮切换动画向右滑动。)
我们将 1st Panel 上的按钮命名为 btnLogin,那么处理 btnLoginClick 事件的方法是:注意:FloatAnimation1 用于第二个面板,FloatAnimation2 用于第一个面板,“属性名称”两个 TFloatAnimation 都是“Position.X”,这将使动画在 X 轴上:
procedure TFormMainView.btnLoginClick(Sender: TObject);
begin
self.FloatAnimation2.StartValue := 0;
self.FloatAnimation2.StopValue := -1 * screen.Size.Width;
self.FloatAnimation1.StartValue := screen.Size.Width;
self.FloatAnimation1.StopValue := 0;
self.FloatAnimation2.start;
self.FloatAnimation1.Start;
end;
第二个面板的按钮名为“btnBacktoMainView”,事件处理程序是:
procedure TFormMainView.btnBackToMainScreenClick(Sender: TObject);
begin
self.FloatAnimation1.StartValue := self.PanelLogin.Position.X;
self.FloatAnimation1.StopValue := self.PanelLogin.Position.X + self.PanelLogin.Width;
self.FloatAnimation2.StartValue := self.PanelMainView.Position.X;
self.FloatAnimation2.StopValue := self.PanelMainView.Position.X + self.PanelMainView.Width;
self.FloatAnimation1.Start;
self.FloatAnimation2.Start;
end;
看到了吗?我们所做的是设置动画对象的“statValue”、“StopValue”,并调用start方法,面板幻灯片太棒了。
也许这种方式不是进行 View 转换的最佳方式,但它确实有效,并且表现完美。在这 10 年里,我曾经使用类似的方式在 Win32 应用程序中处理多个 View ,效果很好。
唯一的区别是我必须使用 TTimer 和 Application.ProcessMessage 来确保Win32 中的动画工作。 (当然是表格项目)。
我在 XE5 中以这种方式针对 iOS 或 Android 进行了测试,并且可以在任一平台上工作。和。。分享大家。
关于ios - 使用幻灯片切换制作表格放映,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056814/
我是一名优秀的程序员,十分优秀!