Delphi XE10让android的界面设计摆脱繁杂
设计一个选项卡。
大体图样:

1、创建一个multi_Device_Application;2、在form上放一个Rectangle1,设置align为top。设置fill属性的kind为Gradient,编辑Gradient(颜色取值见样图)。3、再放一个Rectange2设置align为top,底色为白色。4、在Rectange2上放置三个RoundRect1,RoundRect2,RoundRect3。设置它们的Corners属性的TopLeft和TopRight为TURE,BottomLeft和BottomRight为FALSE,则圆角出现了。然后分别设置它们的Fill属性。5、放置一个Tabcontrol控件,设置TopPostion为None;align为client。6、设置RoundRect1,RoundRect2,RoundRect3的tag属性分别为:1,2,3
直接上代码:
unit TabbedTemplate; interface uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl,
FMX.StdCtrls, FMX.Gestures, FMX.Controls.Presentation, FMX.Objects, FMX.Ani; type
TTabbedForm = class(TForm)
HeaderToolBar: TToolBar;
ToolBarLabel: TLabel;
TabControl1: TTabControl;
TabItem1: TTabItem;
TabItem2: TTabItem;
TabItem3: TTabItem;
GestureManager1: TGestureManager;
Label2: TLabel;
Label3: TLabel;
Rectangle1: TRectangle;
TabPanel: TPanel;
Line1: TLine;
RoundRect1: TRoundRect;
RoundRect2: TRoundRect;
Label5: TLabel;
Label6: TLabel;
RoundRect3: TRoundRect;
Label7: TLabel;
Rectangle2: TRectangle;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo;
var Handled: Boolean);
procedure TabControl1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
procedure TabHeadrOnClick(Sender: TObject);
private
{ Private declarations }
CurTabIndex:integer; public
{ Public declarations }
end; var
TabbedForm: TTabbedForm; implementation {$R *.fmx} procedure TTabbedForm.TabHeadrOnClick(Sender: TObject);
var
ClickTag:integer;
i:integer; begin
if (Sender is TLabel) then
begin
ClickTag:=Tlabel(sender).Tag
end
else
if (Sender is TRoundRect) then
begin
ClickTag:=TRoundRect(Sender).Tag;
end; if ClickTag<>CurTabIndex then
begin
for I := to self.ComponentCount- do
begin
if (self.Components[i] is TRoundRect) then
begin
TRoundRect(self.Components[i]).Fill.Kind:=TBrushKind.Gradient;
TRoundRect(self.Components[i]).Fill.Gradient.Color:= TAlphaColor($FFE2E4E4);
TRoundRect(self.Components[i]).Fill.Gradient.Color1:=TAlphaColor($FFFFFFFF);
TRoundRect(self.Components[i]).Fill.Gradient.Style:=TGradientStyle.Linear;
TRoundRect(self.Components[i]).Stroke.Kind:=TBrushKind.None;
end;
end;
TabControl1.ActiveTab:=TabControl1.Tabs[ClickTag-];;
CurTabIndex:=ClickTag;
TRoundRect(sender).Fill.Kind:=TBrushKind.Solid;
TRoundRect(Sender).Fill.Color:= TAlphaColorRec.Lightskyblue;
TRoundRect(Sender).Stroke.Kind:=TBrushKind.Solid;
TRoundRect(sender).stroke.Color:=TAlphaColorRec.Lightblue;
end;
end; procedure TTabbedForm.FormCreate(Sender: TObject);
begin
{ This defines the default active tab at runtime }
TabControl1.ActiveTab := TabItem1;
CurTabIndex:=;
end; procedure TTabbedForm.FormGesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
{$IFDEF ANDROID}
case EventInfo.GestureID of
sgiLeft:
begin
if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-] then
begin
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+];
Handled := True;
end;
end; sgiRight:
begin
if TabControl1.ActiveTab <> TabControl1.Tabs[] then
begin
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-];
Handled := True;
end;
end;
end;
{$ENDIF}
end; procedure TTabbedForm.TabControl1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
case EventInfo.GestureID of
sgiRight:
begin
TabControl1.Previous();
Handled:=True;
end;
sgiLeft:
begin
TabControl1.Next();
Handled:=True;
end;
end;
end; end.
Delphi XE10让android的界面设计摆脱繁杂的更多相关文章
- Android的界面设计工具 DroidDraw
Android的界面设计工具 DroidDraw DroidDraw 下载地址:http://code.google.com/p/droiddraw/ 如图 也可以使用在线的版本(http://www ...
- Android典型界面设计(3)——访网易新闻实现双导航tab切换
一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...
- Android典型界面设计(5)——使用SlidingMenu和DrawerLayout分别实现左右侧边栏
一.问题描述 侧边栏是Android应用中十分常见的界面效果,可随主屏在左侧或右侧联动,是特别适应手机等小屏幕特性的典型界面设计方案之一,常用作应用的操作菜单,如图所示 实现侧边栏可以使用第三方组件s ...
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
一.问题描述 在Android典型界面设计一文中,实现典型滑动导航界面,其实使用ActionBar 也可以轻松实现这一效果,甚至也可实现类似Android典型界面设计(3)的双导航效果.可见Actio ...
- Android典型界面设计(7) ——DrawerLayout+Fragement+ViewPager+PagerTabStrip实现双导航
一.问题描述 在Android典型界面设计(3)的我们实现了双导航效果,即外层底部导航和内部区域的头部导航,如网易新闻等很多应用采用了这种导航,但Google提供DrawerLayout可实现抽屉式导 ...
- android ui界面设计参数讲解
百度文库: http://wenku.baidu.com/link?url=s66Hw6byBEzmjL77doYL1YQN4Y_39F7MovaHKs5mVGrzTDOQCAmiM-1N_6Cdm- ...
- Android典型界面设计-访网易新闻实现双导航tab切换
一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...
- Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换
一.问题描写叙述 本系列将结合案例应用,陆续向大家介绍一些Android典型界面的设计,首先说说tab导航,导航分为一层和两层(底部区块+区域内头部导航).主要实现方案有RadioGroup+View ...
- Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
一.问题描述 之前我们使用ViewPager+Fragment区域内头部导航,在Android 3.0之后Google增加了新的ActionBar,可方便的实现屏幕Head部区域的 设计如返回键.标题 ...
随机推荐
- 利用JS_SDK实现QQ第三方登录
前言 现如今,第三方登录已成为大部分网站必备的一项基础技能,引入时髦的第三方登录不仅能帮你吸引更多的用户,也让你的网站可以充分利用其他大型网站的用户资源.本次教程将让你的网站最快捷便利地引入QQ登录. ...
- 【排障】Outlook Express 2G收件箱大小限制
Outlook Express 2G收件箱大小限制 文:铁乐猫 ----------------------------- Outlook Express(以下简称OE)客户端收件箱大于或接近2G时, ...
- Gmail账户安全冰山一角
本文没有任何价值,只是一个事实的记录. 看到qq邮箱有个代理其他邮箱的功能,就好奇地输入了我的Gmail邮箱,结果代理不成功. 本来没care,后来gmail自己弹出来一封邮件. 后来我确认是本人所为 ...
- 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选
设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...
- PHP的几个特殊符号意义
有些特殊符号需要特殊记忆,希望对你的编程有帮助! 方法/步骤 1 $ 这个符号的意思是:变量 2 & 这个符号的意思是:变量的地址(加在变量前) 3 @ 这个符号的意思是:不显示错误信息(加在 ...
- hadoop vs spark
http://www.zhihu.com/question/26568496#answer-12035815 Hadoop首先看一下Hadoop解决了什么问题,Hadoop就是解决了大数据(大到一台计 ...
- ASP根据IP来判断跳转页面
真正IP的取得应该这样: 程序代码 ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") if ip = "" ...
- php的标记形式
共三种: 推荐第一种,第三种需要在php.ini中配置 效果: 第三种配置 将short_open_tag=Off改为On重启Apache就可以了
- 解决Asp.net中的Chart控件运行出现错误提示“ ChartImg.axd 执行子请求时出错”
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABTkAAAJwCAIAAADN5fIdAAAgAElEQVR4nOzdfZAc1X3o/VNFlbcoJf
- sublime 安装 Terminal 使用 cmder
在 packagecontrol.io 可以找到 Terminal. 在 cmder.net 下载 cmder 复制 Terminal.sublime-settings 文件到 C:\Users\WX ...