作者:创世魂
● 辅助说明
注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。
● 窗口生命周期解释
当安卓程序运行后,窗口的活动状态就会发生改变。
每个窗口也都有属于自己的活动状态。
大致分为四个状态:
活动状态:当前窗口位于前台,用户可见并且可以对窗口进行操作。
暂停状态:当前窗口被其它窗口或者其它APP覆盖。
停止状态:当前窗口不可见,并且失去焦点。
销毁状态:当前窗口关闭,或者程序结束运行。
上图展示了安卓窗口的完整的生命周期。
一个完整的安卓APP,通常情况下有"多个窗口",每个"窗口"都有属于自己的"生命周期"。
窗口创建时“通知_被创建”会被调用。
窗口启动时“通知_被启动”会被调用。
窗口被重启“通知_被重新启动”会被调用。
窗口激活后“通知_被激活”会被调用。
窗口被暂停“通知_失去激活”会被调用。
窗口被停止"通知_被停止"会被调用。
窗口被关闭"通知_将被销毁"会被调用。
● 生命周期实例
举个例子说:
启动程序后“启动类”窗口就会触发“通知_被创建/被启动/被激活”。
当"启动类窗口"切换"窗口2"的时候。
"启动类窗口"就会触发"失去激活",而"窗口2"就会触发"被创建/被启动/被激活",开始它的生命周期。
如果关闭“窗口2”那么“启动类窗口”就会重新触发“被激活”。
如果"启动类窗口"进入后台(也就是被停止状态触发)。
这时重新让程序进入前台,这个时候"被重新启动"就会被触发。
代码如下图:
在窗口内设计一个编辑框做演示,最后添加生命周期内的“虚拟方法”。
点击跳转查看“虚拟方法”的添加方法。
给每个方法下都写一个“编辑框1.添加内容”。
运行效果(GIF):
可以看到程序运行后“被创建\被启动\被激活”依次添加进来了。
随后我按下了“Home”键返回了桌面,一闪而过的时候可以隐约看到“失去激活”被添加进来。
重新打开程序,可以看到不仅多了“失去激活”紧跟其后还有一个“被停止”。
证明程序进入后台后“通知_被停止”也被调用。
因程序从后台重新进入前台,自然“被重新启动”也被调用。
紧跟其后的是“被启动/被激活”。
最后我按下“返回键”退出程序“通知_将被销毁”被调用,设置的提示框也弹出。
● 虚拟方法创建
右键“窗口”基础类任意区域,选择“添加‘启动类’虚拟方法”。
备注:在火山中安卓APP“启动窗口”的名字必须叫“启动类”,而且无法修改。
选择后这样我们就打开了“启动类”窗口的“虚拟方法”。
最后选择你要创建的“虚拟方法”,然后点击“添加”即可。
● 设计一个界面
加入一个线性布局器,将其“布局方向”属性设置为“横向布局”。
然后在其中放两个按钮,最后在线性布局器的外面放一个编辑框。
编辑框右侧属性的组件宽度类型,设置为“匹配父组件宽度”
● 通知_被创建
帮助文档如下图:
可以看到本虚拟方法有“三个”参数。
参数1:“启动信息对象”用来提供载入本窗口传递过来的“启动信息”。
例如:载入窗口方法,有一个“数据包类”参数,提供参数后,这里就可以用“启动信息类”接收传递的参数。
参数2:“载入参数”对象类,载入窗口2可以传递本参数。
参数3:就是传递的“参数2”的数组成员数了。
代码编写(1):
使用快捷键Ctrl+D创建一个新的类,起名“窗口2”,基础类填写“窗口”。
随后鼠标右键打开“窗口2界面布局”,放置一个“编辑框”。
设置编辑框,组件宽度类型为“匹配父组件宽度”
最后鼠标右键添加“窗口2”的“通知_被创建”虚拟方法。
代码编写(2):
首先添加启动类的“通知_被创建”虚拟方法。
在该方法下创建一个类型为“数据包类”的变量(名称随意)。
利用数据包类的“写文本字段”方法,可以写一段数据存储起来。
写文本字段有三个参数,并且支持动态调用。
参数1:为要操作的数据包类,因支持动态调用,所以这里可以省略不写。
直接写参数2:字段名(可以理解为“标识”,名称随意)
参数3:填写你要传递的文本数据即可。
代码编写(3):
在窗口2的“通知_被创建”下面,给本窗口设置一个标题方便区分(黄色箭头)。
然后利用参数启动信息的“取附带数据包”方法,继续“读文本字段”方法。
字段名自然是填写启动类那边输入的字段名。
最后赋值给“编辑框1.内容”看看效果。
运行效果如下图:
运行后可以看见,程序直接载入到了“窗口2”,并且“传递的文本”也成功显示在了“编辑框”内。
● 通知_被启动
帮助文档如下图:
可以看到被启动“没有任何参数”和“返回值”,用户可见之后调用。
代码编写:
通过“生命周期图”可以得知,“被创建”后紧跟着就是“被启动”。
我们可以利用“编辑框1.添加内容”的方法来验证一下。
隐藏掉原来的代码,在“被创建”和“被启动”的下面,分别写上一些内容。
运行效果如下图:
可以看到“通知_被启动”确实是跟着“通知_被创建”。
● 通知_被重新启动
帮助文档如下图:
可以看到没有任何参数。
注意红色方框内的提示,“窗口被停止”重新“载入”的时候,会触发“本虚拟方法”。
并且紧跟着,“通知_被启动”会重新触发一次。
代码编写如下图:
添加“通知_被重新启动”虚拟方法,利用“编辑框1.添加内容”方法,添加一个“文本”进行进行测试。
运行效果如下图(GIF):
最简单直接的方法“按下手机Home键”,返回桌面后,重新打开本程序。
可以看到“编辑框”内新增了“被重新启动”和“被启动”两个文本。
● 通知_被激活
帮助文档如下图:
可以看到没有任何参数。
通过“生命周期图”可以得知,本方法紧跟着“被启动”。
并且本方法调用,意味着窗口进入了前台。
代码编写如下图:
添加“通知_被激活”虚拟方法,依然是用“编辑框1.添加内容”进行测试。
运行效果如下图:
可以看到“被启动”后紧跟着就是“被激活”。
● 通知_失去激活
帮助文档如下图:
可以看到没有任何参数。
失去激活的三种方式。
第一:本窗口被其它窗口覆盖。
第二:本程序被其它程序覆盖。
第三:按下手机home键进入桌面。
代码如下图:
依然利用“编辑框1.添加内容”进行判断。
运行效果如下图(GIF):
最简单的方法“Home键”回到桌面,重新打开程序,可以看到多了一个“失去激活”。
对应的“被重新启动”,“被启动”,“被激活”也会被重新全部调用。
● 通知_清理数据
帮助文档如下图:
可以看到本方法没有任何参数。
关闭本窗口前,“本虚拟方法”会被调用,处理一些不耗时的操作。
并且本方法处于“将被销毁”前面和“被停止”后面。
代码编写如下图:
添加“通知_清理数据”的虚拟方法,可以利用“提示框”来进行测试。
添加“按钮”被单击事件,指定来源对象为“按钮1”。
最后调用“关闭”方法,来关闭本窗口。
运行效果如下图(GIF):
可以看到点击“按钮1”后,执行“关闭”后,会弹出“被清理”提示。
您可以把提示框方法,换成您要操作的其它方法,一定注意,不能耗时过长的方法。
● 通知_被停止
帮助文档如下图:
可以看到没有任何参数,窗口被停止时调用本方法。
除了帮助文档中描述的情况之外,还有三种情况本方法会调用。
第一:打开其它程序。
第二:home键返回桌面。
第三:程序结束。
代码编写如下图:
我们在“按钮_被单击”事件下,增加一个“载入窗口”的方法。
载入我们最开始定义的“窗口2”。
添加“被停止”虚拟方法,可以弹出一个“提示框”做演示。
运行效果如下图:
可以看到执行“按钮1”进入“窗口2”后,“提示框”会被弹出。
也就证明“启动类”窗口的“被停止”虚拟方法被调用。
● 通知_将被销毁
帮助文档如下图:
可以看到没有任何参数和返回值。
窗口“被销毁”的时候“本方法”会被调用,不要在本方法下写“清理数据”。
数据清理要在“通知_清理数据”方法下添加。
代码编写如下图:
创建“通知_将被销毁”虚拟方法。
写一个“提示框”方法做判断。
运行效果如下图:
最简单的方法就是,进入程序后“按下返回键”,“窗口”就会“进行销毁”,对应的“销毁提示”就会弹出。
● 通知_即将初始化内容
帮助文档如下图:
可以看到本方法也没有任何参数和返回值,并且本方法在“通知_被创建”之前调用。
此时“窗口内容”还没有被载入,因此本方法下“禁止操作”任何窗口组件。
代码编写如下图:
因不能操作窗口内的任何组件进行测试,所以这里我们可以修改“窗口标题”来演示效果。
运行效果如下图:
执行程序后就可以看到“启动类窗口”的“标题”被修改成了我们设置的内容。
● 通知_初始化选项菜单
帮助文档如下图:
可以看到有一个菜单参数和逻辑返回值。
如果调用了“重建选项菜单”“本方法”会被重新调用一次。
更新选项菜单请在“通知_更新选项菜单”虚拟方法下填写。
代码编写如下图:
我们随便添加三个菜单。
运行效果如下图:
运行程序后右上角就会出现“菜单按钮”。
备注:如果标题被隐藏,会看不到“菜单按钮”。
● 通知_更新选项菜单
帮助文档如下图:
可以看到一个“菜单”参数和一个“逻辑”返回值。
每次即将显示窗口时,本方法都会被调用,用户可以在本方法下“更新菜单”。
代码编写如下图:
例如:我们在“通知_初始化选项菜单”中随意添加几个菜单后。
随后在“通知_更新选项菜单”下也添加几个菜单。
注意:要添加删除所有菜单项目方法,不然会在“原菜单”的基础上“增加菜单”。
运行效果如下图:
点击右上角的菜单按钮弹出菜单后会显示“更新选项菜单”中的新菜单。
● 通知_获得返回数据
帮助文档如下图:
可以看到有三个参数:
参数1:载入窗口时提供的返回值请求码。
参数2:置返回数据方法提供的“所返回结果码”。
参数3:置返回数据方法提供的返回数据。
简单来说,就是“窗口2”关闭的时候“传送数据”,“窗口1”获得“窗口2”传送的数据。
中间的过程用需要用“请求码”来判断。
代码编写(1):
首先在“启动类窗口”,的“按钮_被单击”事件下写“载入窗口”方法。。
参数1:写要载入的窗口类。
参数2:可省略不写。
参数3:填写“请求码”(数值随意)。
代码编写(2):
在窗口2中,增加一个按钮。
然后添加“按钮_被单击”事件,定义一个类型为“数据包类”的变量(名称随意)。
随后利用写文本字段方法,写一串准备返回的文本数据。
最后利用“置返回数据”方法,把定义的“数据包变量”写入参数2。
参数1则填写一个返回码(黄圈内)。
代码编写(3):
在启动类窗口下,添加“通知_获得返回数据”虚拟方法。
最后用“如果”判断所返回结果码。
最后利用参数3,取附带数据包方法的“读文本字段”,去读取保存数据的字段名。
利用“编辑框1”添加内容方法,把整段代码放入。
运行效果如下图(GIF):
可以看到“载入窗口2”返回之后,“启动类”窗口中“编辑框”增加了返回的数据。
并且还可看出“本方法”在“重启新启动”之前执行。
● 通知_即将发送按键事件
帮助文档如下图:
可以看到有一个“键盘事件类”参数和一个“逻辑返回值”。
顾名思义就是用来监听“键盘”按下事件。
这个键盘自然是给“手机”或者其它“安卓设备”外接的“实体键盘”或者“虚拟键盘”。
并且本方法在“通知_按键事件”之前提示触发本事件。
代码编写如下图:
添加本虚拟方法后,可以利用“按键事件类”来对ctrl键进行监听。
运行效果如下图:
外接接键盘后,按下键盘的“ctrl”,本虚拟方法就会触发。
● 通知_按键事件
帮助文档如下图:
可以看到有三个参数,和一个逻辑返回值。
本方法在“通知_即将发送按键事件”和“通知_即将发送快捷键事件”后执行。
本方法同样是用来“监听键盘”按下事件。
不同之处就是本方法多了两个参数。
按键通知类型:可以判断“按键”状态。
例如:“被按下”,“被放开”等……具体可以看该类型的帮助文档。
按键代码:查看“按键代码类”定义的常量值。
代码编写如下图:
例如:我们依然是监听ctrl键。
运行效果如下图:
运行后可以看到“按键事件”在“即将发送按键事件”之后。
● 通知_即将发送快捷键事件
帮助文档如下图:
本方法有一个“按键事件类”参数和一个逻辑返回值。
顾名思义,就是监听“键盘”按下的组合的快捷键(Ctrl+任意键)。
本方法在“通知_按键事件”之前发送。
代码编写如下图:
第一步:监听ctrl键。
第二:利用“快捷键输入事件”的“按键”读方法,判断“第二按键”,例如我这边判断“A”.
最后我们可以执行“编辑框1.添加内容”方法来演示效果。
运行效果如下图:
按下键盘“ctrl+a”组合按键后,指定内容也成功输出。
● 通知_即将发送触摸事件
帮助文档如下图:
可以看到有一个“动作事件类”参数和一个“逻辑”返回值。
顾名思义,就是当用户触摸窗口时,本方法会被调用。
本方法和“通知_被触摸”的区别就是,本方法会提前触发。
代码编写如下图:
例如:判断“触摸动作事件.动作”的动作类型。
随后依然是用编辑框1.添加内容的方法演示效果。
运行效果如下图(GIF):
执行后可以看到两种动作类型均被触发。
备注:模拟器的“鼠标点击”等同于“手指触摸”。
● 通知_被触摸
帮助文档如下图:
可以看到本方法和“通知_即将发送触摸事件”没什么区别。
本方法在“通知_即将发送触摸事件”的后面执行。
代码编写如下图:
可以把“即将发送触摸事件”的代码抄下来,动作类型改成“移动”。
最后用编辑框演示结果。
运行效果如下图(GIF):
可以看到鼠标点击“移动”的时候“被触摸”会不停的触发。
备注:模拟器的"鼠标点击移动"等同于"触摸移动"。
● 通知_回退键被按下
帮助文档如下图:
可以看到只有一个逻辑返回值,返回“真”屏蔽返回假,默认返回假。
顾名思义,就是判断是否屏蔽“安卓手机”的“返回键”。
你也可以用“本方法”来对“按下返回键”进行一些其它的操作。
代码编写如下图:
添加“通知_回退键被按下”虚拟方法。
随后在本方法下,红色箭头所指的位置,直接写“==假”即可屏蔽“返回键”的退出程序操作。
代码中间可以增加一个你想要处理的方法,比如这里我添加了一个提示框。
运行效果如下图(GIF):
可以看到,我“按下返回键”后并没有“退出程序”,仅仅只是弹出了一个设置“提示框”。
● 通知_获取窗口描述
帮助文档如下图:
可以看到有一个“文本返回值”。
当窗口不处于激活状态的时候,本方法会被调用,并且返回一个文本值。
在需要的时候,文本值提供给其它方法使用。
代码编写(1):
添加“通知_获取窗口描述”虚拟方法。
我们可以“隐藏”或“删除”红色箭头所指的内容。
重新写一个“返回”方法,参数填需要“返回”的“返回值”。
代码编写(2):
在“按钮_被单击”下,可以指定来源对象等于“按钮2”。
然后利用“通知_获取窗口描述”来得到你所写的返回值。
运行效果如下图:
执行“按钮2”后,内容成功返回。
● 通知_用户进入
帮助文档如下图:
可以看到,只要窗口进行任何形式的交互,都会触发本方法。
同时还有一个相关联的方法“通知_用户离开”。
代码编写如下图:
直接在“通知_用户进入”虚拟方法下填写你要执行的“方法”即可。
运行效果如下图(GIF):
可以看到“触摸”的时候会触发本方法,点击“按钮”同样会触发。
● 通知_用户离开
帮助文档如下图:
用户离开一般分为三种情况。
第一:“home键”返回桌面。
第二:切换到“其它窗口”。
第三:打开了“其它app”。
代码编写如下图:
直接在“用户离开”虚拟方法下填写即可。
运行效果如下图(GIF):
可以看到切换“窗口2”,又“切换回来”的时候,“用户离开”方法被触发。
● 通知_窗口焦点被改变
帮助文档如下图:
可以看到有一个“逻辑”参数。
顾名思义,就是用来判断“当前窗口”是否有“焦点”。
代码编写(1):
直接用如果判断参数的返回值,然后可以用编辑框1.添加内容看效果。
代码编写(2):
另外还可以点击“按钮”弹出一个“信息框”做测试。
运行效果如下图(GIF):
可以看到“软件启动后”,自动“获得焦点”。
信息框弹出后“焦点消失”。
关闭“信息框”后,“窗口焦点”又重新获取。
● 背景色(写)
帮助文档如下图:
顾名思义:就是设置“当前窗口”的背景颜色,并且会覆盖其它方式设置的背景。
代码编写如下图:
直接对本属性赋值“颜色类”的“颜色常量”即可。
如果要想设置其他颜色,直接赋值“0xFF”加十六进制颜色值。
例如:当前设置的“白色”其实就是“0xFFFFFFFF”。
运行效果如下图:
执行按钮后,可以看到“背景颜色”变成了白色。
● 背景图(写)
帮助文档如下图:
顾名思义就是设置一个“可绘制资源”类型的“背景图”。
代码编写如下图:
例如:可以定义一个“可绘制资源”变量,点击“黄色箭头”所指的按钮导入一张“图片”。
图片名不能是“中文”也不能是“数字”,前面的路径无所谓。
然后直接给“背景图”赋值定义的“背景图变量”即可。
运行效果如下图(GIF):
点击“按钮”后,可以看到“背景图”成功加载。
并且“背景图”会覆盖“背景色”,同样“背景色”会覆盖“背景图”。
● 标题(写)
帮助文档如下图:
顾名思义,就是修改“当前窗口标题”。
代码编写如下图:
直接给本属性“赋值”一个“文本型”的字符串即可。
运行效果如下图:
执行按钮1后就可以看到“标题”被修改。
● 标题(读)
帮助文档如下图:
顾名思义读取“当前窗口标题”并返回。
代码编写如下图:
利用“编辑框”做演示,直接给“编辑框的内容”赋值“标题”。
运行效果如下图:
执行“按钮2”后,标题被“取出”。
● 沉浸模式(写)
帮助文档如下图:
顾名思义,设置窗口是否为“沉浸模式”。
沉浸模式通俗理解:手机“状态栏会透明”,将窗口显示出来。
注意:设置“沉浸模式”后,窗口“所有组件”会整体“上移”一部分。
本属性搭配“隐藏标题”使用更加完美。
代码编写如下图:
直接赋值“真”或者“假”即可。
“真”为沉浸模式,“假”为不沉浸。
运行效果如下图:
可以看到“按钮1”点击后,状态栏“黑色变透明“。
点击“按钮2”后,状态栏又恢复了“黑色”。
● 界外触摸关闭(写)
帮助文档如下图:
顾名思义,就是设置“窗口外”的区域,触摸后“是否关闭”窗口。
通常用作“对话框窗口”的判断。
代码编写(1):
首先“启动类”的基础类改成“对话框窗口”。
代码编写(2):
“按钮1”和“按钮2”分别设置“真和假”。
运行效果如下图(GIF):
可以看到程序运行后,变成了“对话框”模式。
执行“按钮1”,触摸“窗口外界”,窗口“直接关闭”。
执行"按钮2",触摸"窗口外界",窗口“不会关闭”。
● 屏幕方向(写)
帮助文档如下图:
顾名思义,设置“窗口的方向”是“横”还是“纵”。
运行(1):
执行“按钮2”就会变成“横向窗口”。
运行(2):
执行"按钮1"就会变成"纵向窗口"。
● 启动信息(读)
帮助文档如下图:
读取“本窗口”被载入时的“启动信息类”。
通俗理解:“窗口1”载入“窗口2”传递了“参数”。
你不想在“窗口2”的“通知_被创建”下面获取,你就可以利用“本方法”在“其它方法或事件”下获取。
代码编写(1):
点击“启动类”窗口的“按钮”后载入“窗口2”传递一个“数据包变量”变量过去。
代码编写(2):
在“窗口2”的“按钮_被单击”事件下面获取传递的“数据包”。
直接利用本属性就可以“取附带数据包”,然后“读文本字段”
注意:黄圈不要遗漏小数点。
最后赋值给编辑框显示。
运行效果如下图:
进入“窗口2”后,点击“按钮”就可以成功读取“传递的数据”。
● 全屏模式(显示/隐藏状态栏)
帮助文档如下图:
顾名思义,设置窗口是否为全屏状态(也就是隐藏系统状态栏)。
代码编写如下图:
直接“赋值”即可,“真”为“隐藏”状态栏,“假”为“显示”状态栏。
运行效果如下图:
左图:“按钮1”点击后,“状态栏”消失,为全屏模式。
右图:"按钮2"点击后,"状态栏"重新出现,非全屏模式。
● 是否被激活(读)
帮助文档如下图:
顾名思义,读取“当前窗口”是否“被激活”。
也就是“通知_被激活”调用后就会处于“激活”状态。
代码编写如下图:
左图:可以在“通知_被创建”下判断一下“激活状态”。
右图:另外用“按钮”判断一下“激活状态”。
运行效果如下图(GIF):
因“通知_被创建”在“通知_被激活”之前,所以“打开软件后”必然会首先提示“没有激活”。
而“执行按钮”必然会提示“已经激活”。
● 是否可视(写)
帮助文档如下图:
顾名思义,设置“当前窗口”是否“隐藏”。
代码编写如下图:
例如:在“按钮_被单击”下写“是否可视=假”。
运行效果如下图(GIF):
执行“按钮”后,“窗口本身”包括“窗口内组件”全部会变成“不可见”状态
并不是程序死掉了,而是窗口隐藏了起来。
● 是否已销毁(读)
帮助文档如下图:
顾名思义:就是判断“当前窗口”是否“已经销毁”。
如果返回真表示“通知_将被销毁”已经被调用。
代码编写如下图:
左图:“按钮”被单击下,直接用“如果”进行判断。
右图:可以在“通知_将被销毁”时间下进行一下判断。
运行效果如下图(GIF):
可以看到执行“按钮”会提示没有被销毁,而“退出程序”后会弹出“被销毁”提示。
● 是否有焦点(读)
帮助文档如下图:
顾名思义,就是读取“当前窗口”是否获得焦点。
代码编写如下图:
直接用“如果”进行判断“真”或者“假”即可。
窗口没有焦点的三种情况:
第一:被其他窗口覆盖。
第二:被其他APP覆盖。
第三:弹出了一个对话框。
运行效果如下图:
因当前窗口处于“前台激活”状态,所以执行“按钮”后提示“有焦点”。
● 所调节音频类型(写)
帮助文档如下图:
顾名思义,设置当前“当前窗口”“按下音量键”所调节的“音频类型”。
代码编写如下图:
例如:要“当前窗口”“按下音量键”调节“系统音量”(锁屏、按键等音量)。
直接用对应的“音频类型”赋值即可。
最终的效果就是“按钮1”点击后,此时去按音量键,就会调整系统音量。
点击“按钮2”,再去按音量键,此时就会调整闹钟声音。
● 所调节音频类型(读)
帮助文档如下图:
顾名思义:就是返回“当前窗口”按下“音量键”所调节的“音频类型”。
代码编写如下图:
可以用“如果”判断调节的“音频类型”,然后“执行”,你想要“执行”的方法。
● 动作条可视(写)
帮助文档如下图:
通过本属性也可以用于显示/隐藏标题栏。
属性值为真则显示,否则隐藏。
代码编写如下图:
“按钮1”被点击后,显示标题栏。
“按钮2”被点击后,隐藏标题栏。
运行结果如下图(GIF):
● 状态栏颜色(写)
帮助文档如下图:
顾名思义,通过本属性可设置状态栏背景颜色。
注意:本设置需要安卓系统5.0以上才可以使用。
代码编写如下图:
“按钮1”被点击后设置颜色为白色。
“按钮2”被点击后,设置颜色为蓝色。
运行结果如下图(GIF):
● 状态栏高度(读)
帮助文档如下图:
通过本属性可获取当前手机状态栏高度,单位像素。
注意:手机状态栏高度未必都是一致的。
代码编写如下图:
直接调用本属性读取即可。
运行结果如下图:
● 隐藏标题栏
帮助文档如下图:
它是一个通常方法,顾名思义就是用来“隐藏当前窗口标题”。
并且还可以设置,是否为“全屏模式”,参数默认值为“真”。
注意:本方法只能在“通知_即将初始化内容”中调用。
如果想要在任意位置隐藏标题栏请使用“动作条可视”写属性。
代码编写如下图:
左图:输入本方法不写参数。
右图:运行后可以看到,“标题”和“状态栏”全部消失。
代码编写如下图:
本方法写一个参数“假”,运行后可以看到仅仅是“标题被隐藏”。
● 信息框
帮助文档如下图:
顾名思义,在屏幕的中间弹出一个信息框。
有三个参数,我们可以给它设置“图标”、“内容”和“标题”。
代码编写(1):
例如:我们创建一个“可绘制资源”变量,导入一张图。
填写“本方法”输入对应的“参数”。
运行后如“右图”所示,弹出了一个带“图标”的“信息框”。
代码编写(2):
如果不想使用图标,我们只需要在“参数1”填写“(可绘制资源)空资源()”即可。
可以看到“右图”,运行后并没有“任何图标”显示。
● 提示信息框
以上“三个方法”用法一致,这里用“提示信息框”举例。
帮助文档如下图:
只有一个“文本”参数。
代码编写如下图:
输入“方法名”,填写想要“显示的文本”即可。
运行效果如下图:
执行“按钮1”后就可以看到一个带有“提示图标”的信息框。
“警告信息框”带有“警告”图标。
"错误信息框"带有"错误"图标。
● 载入窗口
帮助文档如下图:
可以看到有三个参数。
参数1:要载入的窗口类名称。
参数2:如果要传递数据给另外一个窗口,在本方法中填写。
参数3:另外一个窗口,返回本窗口用到的返回码。
代码编写如下图:
参数一:直接填写要加载的“窗口类名称”即可。
参数二:示例请看"通知_被创建"
参数三:示例请看"通知_获得返回数据"
运行效果如下图(GIF):
点击“按钮1”后就会进入到“窗口2”中。
● 动画载入窗口
帮助文档如下图:
可以看到本方法和“载入窗口”基本没区别。
不同之处就是“本方法”多了一个“切换动画”,具体可以看“窗口切换模式”的帮助文档。
代码编写如下图:
给“参数2”写一个“从右到左”的动画效果。
运行效果如下图(GIF):
可以看到点击“按钮1”切换窗口的时候,多了一个“从右到左”的动画。
● 载入窗口2
帮助文档如下图:
可以看到“本方法”和“载入窗口”并没有什么太大的区别。
不同之处就是“本方法”的“传递参数”变成了任意类型。
如果“传递的数据”不涉及“对象”,建议用“载入窗口”载入。
代码编写(1):
在“启动类”窗口,“按钮被单击”下写“本方法”。
参数1:写要载入的窗口名字。
参数2:可以直接写要传递的参数。
代码编写(2):
在“窗口2”的“通知被创建”下填写“接收代码”。
“载入参数”数组填写“0”,最后用“对象到文本”方法转换,赋值给“编辑框1”显示。
运行效果:
可以看到传递的数据被成功读取。
● 动画载入窗口2
帮助文档如下图:
可以看到“本方法”和“载入窗口2”没什么区别。
不同之处就是本方法多了一个“切换动画”。
具体动画效果观看“窗口切换模式”的帮助文档。
代码编写如下图:
例如:我们给“参数2”填写一个“从上到下”的动画效果。
运行效果如下图:
可以看到“载入窗口”的时候多了一个“从上到下”的切换效果。
● 关闭(窗口)
帮助文档如下图:
顾名思义,就是关闭当前窗口。
用途一:如果"当前窗口"是最后一个"窗口",使用"本方法"后当前app"会退出"。
具体可看:"通知_清理数据"中的使用方式。
用途二:"窗口1"载入"窗口2",当"窗口2"使用"关闭"方法后,程序则会返回"窗口1"。
具体可看:"通知_获得返回数据"中的使用方式。
● 动画关闭(窗口)
帮助文档如下图:
可以看“本方法”和“关闭”之间的区别就是多了一个“切换动画”。
具体如何使用“动画常量”,可以看“动画载入窗口”
具体动画效果观看"窗口切换模式"的帮助文档。
● 播放窗口切换动画
帮助文档如下图:
顾名思义,就是播放窗口切换动画
不过“本方法”无法单独执行,必须在“载入窗口”或“载入窗口2”或“关闭”后面。
代码编写如下图:
在普通的“载入窗口”方法下写上“本方法”,然后参数填写一个“切换动画”。
运行效果如下图(GIF):
可以看到“普通切换窗口”方法,也可以增加“切换动画”。
● 重建(窗口)
帮助文档如下图:
顾名思义,就是把当前窗口进行“重建”操作。
代码编写如下图:
例如:我们这里在“按钮”被单击下,执行“重建”。
并且在“通知_被激活”下面改变“编辑框”的内容。
运行效果如下图(GIF):
可以看到“当前窗口”进行了一个“重建”操作,并且“通知_被激活”也被重新触发。
● 启用标题栏进度条
帮助文档如下图:
顾名思义,就是在当前窗口的“标题”位置添加一个“进度条”。
注意:“本方法”必须在“通知_即将初始化内容”虚拟方法下调用才有效。
注意2:部分“安卓手机设备”的主题并不支持“显示进度条”。
我们可以将“窗口强制变成”一个可以“显示进度条”的主题。
例如:Holo主题。
代码编写(1):
在要改变的“窗口类”后面的“属性名”中填写“@安卓.附加清单”。
属性值填写:常用窗口附加清单.Holo根主题
代码编写(2):
我们在“通知即将初始化内容”虚拟方法下填写“本方法”,“参数”设置“真”。
随后在“按钮”事件下,执行“置标题栏进度”和“标题栏第二进度”方法来设置进度。
运行效果:
运行后,执行“按钮1”可以看到,“标题”上面多了“两个进度”提示。
● 创建窗口组件
帮助文档如下图:
顾名思义,就是创建一个窗口组件,如果不能创建实例将返回空对象。
有两个参数和返回值,“参数1”和“返回值”的数据类型相同。
参数二:设置初始化数据,通常情况下为空即可。
代码编写如下图:
定一个类型为“按钮”的变量。
利用本方法创建按钮组件,赋值给定义的按钮变量。
可以给“按钮”设置一个“内容”属性。
最后利用“线性布局器”的“添加子组件”方法,添加定义的“新按钮”即可。
运行效果如下图(GIF):
可以看到点击“按钮”后,出来一个“新的按钮”。
● 创建窗口组件1
如下图:
本方法和"创建窗口组件"的区别就是多了一个"安卓窗口"类。
如下图:
参数1:直接填写本对象即可。
因运行效果和"创建窗口组件"一致,因此不做演示。
● 打开选项菜单
帮助文档如下图:
顾名思义,就是打开定义的“选项菜单”。
代码编写如下图:
例如:随意定义几个菜单,然后在“按钮”事件下执行“本方法”。
运行效果如下图:
点击“按钮1”就会“弹出菜单”。
备注:不同“安卓版本”,显示位置可能所有“不同”。
● 重建选项菜单
帮助文档如下图:
顾名思义,就是让“选项菜单”重新建立一次。
代码编写如下图:
可以在“初始化选项菜单”下,增加一个“编辑框.添加内容”方法。
运行效果如下图:
点击“按钮1”执行本方法后,可以看到“编辑框内”又多了“一条内容”。
间接证明“通知_初始化选项菜单”被重新调用了一次。
● 关闭上下文菜单支持
帮助文档如下图:
“上下文菜单”的通俗理解,指定组件长按后(约一两秒)弹出的菜单。
本方法顾名思义,就是用来“关闭”指定组件弹出“上下文菜单”。
代码编写如下图:
添加上下文菜单,请看“上下文菜单”的帮助文档。
例如:我们让“按钮1”点击后“按钮2”开启上下文菜单。
“按钮2”点击后,“取消”自身的“上下文菜单”。
运行效果如下图:
可以看到点击“按钮1”,“按钮2”长按后(约一两秒),就会弹出一个菜单。
备注:不同安卓版本,“菜单”显示位置可能不同(安卓5.0会在屏幕中间弹出)。
我们点击“按钮2”后,再次去长按“按钮2”,“上下文菜单”将不会弹出。
● 开启上下文菜单支持
帮助文档如下图:
通俗理解就是,让指定组件“支持长按后”弹出一个“菜单”选项。
点击查看:“开启上下文菜单”
● 关闭选项菜单
帮助文档如下图:
顾名思义,就是“关闭”一个已经打开的“选项菜单”。
代码编写如下图:
在需要的地方直接“输入本方法”即可,本方法不进行效果演示。
● 查找子组件
帮助文档如下图:
顾名思义,就是通过ID查找指定组件,如果“目标ID”的组件“不是”火山组件,将会返回“空对象”。
注意:必须保证你所查找的id存在于火山程序中。
代码编写(1):
例如:单击一个“按钮”查找组件。
你需要定义一个“目标类型”的变量。
例如:查找“按钮”,我们就定义类型为“按钮”的变量。
利用“本方法”查找“目标ID”后,强转成“目标类型”,就可以操作“目标类型”各种方法。
例如:我这里操作的是"按钮"的内容。
注意:如果你要查找的“目标组件”,不知道“ID”是多少,需要用目标“组件名称”的读“ID”属性取出。
例如:我这里要找“按钮2”就直接写“按钮2.ID”。
运行效果如下图:
执行“按钮1”后“按钮2内容”就会发生改变。
● 显示标题栏进度条
帮助文档如下图:
顾名思义,就是用来隐藏和显示“标题进度条”。
本方法必须搭配“启用标题栏进度条”使用。
参数1:是否显示可确定或不可确定进度条。
参数2:就是是否显示和隐藏进度条。
代码编写如下图:
例如:你需要“显示”标题栏进度条,“参数2”就填写“真”,“隐藏”就填写“假”。
运行效果如下图(GIF):
点击“按钮1”显示,点击“按钮2”隐藏。
● 移动任务到后台
帮助文档如下图:
通俗理解:就是“返回桌面”,相当于按下手机“home键”。
代码编写如下图:
直接在需要的地方写“本方法”即可。
运行效果如下图:
编辑框内输入了内容,点击“按钮1”后程序进入后台运行,重新打开“编辑框内容”依然存在。
● 取窗口配置表
帮助文档如下图:
利用“本方法”可以写“窗口配置”。
通俗理解就是可以“保存”一些数据,并且“程序退出”后信息依然存在。
有一个“是否添为添加写出”的逻辑参数,通常情况下直接使用“默认值”即可。
代码编写如下图:
“按钮1”执行后,执行的是“保存配置”的操作。
定义一个类型为“程序配置表修改器”的变量,设置参考。
随后用“取窗口配置表().取修改器()”,赋值给定义的修改器变量。
然后就可以利用定义的“修改器变量”的“置文本配置项”方法,去写一段数据。
最后要用一个“提交”方法来确认“修改”,成功返回“真”,失败返回“假”。
"按钮2"自然是用来"取文本配置项"的,参数直接写保存时的"配置项"的名称即可。
运行效果如下图:
左图:点击"按钮1",提示保存成功。
右图:点击"按钮2",编辑框内成功读取配置。
● 取窗口容器组件
帮助文档如下图:
顾名思义,就是取窗口本身的容器。
代码编写如下图:
例如:我们可以用“本方法”,取出窗口内“子组件”的数量。
运行效果如下图:
窗口中明明有多个组件为什么会取出来是两个?
因为“按钮1”和“按钮2”是在一个“线性布局容器”内,容器内的“组件”不统计。
● 取当前焦点子组件
帮助文档如下图:
顾名思义,就是取出当前窗口内有“输入焦点”的组件,例如:可以取“编辑框”。
取出来的组件可以干什么?具体可以看“窗口组件”类的帮助文档,点击“红圈”内的名字就可以进入。
代码编写如下图:
例如:修改“有输入焦点”的背景色。
可以直接在“本方法”后写“.背景色”,就可以设置“编辑框”的背景色。
如果有多个“编辑框”,哪个编辑框有输入焦点,就修改哪个编辑框的背景色。
运行效果如下图:
点击“按钮1”后编辑框的“背景色”就会发生改变。
● 置背景图
帮助文档如下图:
顾名思义,就是给窗口设置一个“背景图”,不过“背景图”参数是“可绘制对象类”
并且本方法会覆盖其它形式设置的背景。
代码编写如下图:
我们可以设置一个“可绘制资源”变量,载入一张“图片”。
最后可以用“载入可绘制资源”方法,将“可绘制资源”转换成“可绘制对象类”。
运行效果如下图:
点击"按钮1"窗口成功加载设置的“背景图片”。
● 置标题栏第二进度
帮助文档如下图:
设置“标题第二进度”,可以用来当做播放器的“缓冲进度”,最大值100。
本方法需要搭配“启动标题栏进度条(真)”使用。
具体用法可跳转“启动标题栏进度条”查看。
● 置标题栏进度
帮助文档如下图:
可以看到“本方法”和“置标题栏第二进度”相同,通用必须调用“启用标题栏进度条(真)”
具体用法可跳转"启动标题栏进度条"查看。
● 置返回数据
帮助文档如下图:
通俗理解:当前窗口“关闭”后,“返回数据”到“上一个”窗口。
参数1:输入“返回码”。
参数2:输入要返回的“数据包类”。
具体用法查看“通知_获得返回数据”
● 分享图片
以上几个方法都会触发系统分享,通过系统分享可将指定内容分享到指定软件中。
此处演示“分享文字”方法。
帮助文档如下图:
本方法共有三个参数。
参数1:设置要分享的内容。
参数2:设置分享标题(部分手机可能不显示)。
参数3:分享内容会弹出一个对话框,本参数就是用来设置对话框标题。
代码编写如下图:
直接调用本方法设置对应参数即可。
运行结果如下图(GIF):
分享后会直接将要分享的内容显示在指定软件上。
● 打开指定应用
帮助文档如下图:
顾名思义,通过本方法可打开指定应用,成功返回真,否则返回假。
注:部分手机打开时可能有权限提示或者禁止打开。
代码编写如下图:
直接在本方法的参数内填写一个要打开的应用包名,并判断返回值即可。
运行结果如下图(GIF):
● 打开指定文件
帮助文档如下图:
顾名思义,通过本方法可打开指定文件。
返回值为逻辑型,返回真表示系统内有可以打开本文件的程序,否则返回假。
参数1:填写要打开的文件路径。
参数2:填写文件类型,调用方式“常用文件类型.XXX”.
注意:如果系统中存在多个程序都可以打开本文件,则会弹出选择提示。
代码编写如下图:
调用本方法打开一个txt文本文件。
运行结果如下图(GIF):
● 打开指定网址
以上两个方法都是打开网址,此处讲解“打开指定网址”方法。
帮助文档如下图:
顾名思义,通过本方法可打开指定网址。
例如:打开火山官网直接在参数内填写“http://www.voldp.com”
注意:如果有多个浏览器会弹出选择提示。
代码编写如下图:
直接在参数内填写要打开的网址即可。
运行结果如下图(GIF):
● 返回桌面
帮助文档如下图:
调用本方法可返回系统桌面,本方法效果等同于按下Home键。
注意:并不能实现永久后台运行。
代码编写如下图:
直接调用本方法即可。
运行结果如下图(GIF):
可看到“按钮1”被点击返回桌面后,再次打开软件编辑框内容依然存在。
● 对话框窗口
以上窗口模式用法一致,这里举例“对话框窗口”窗口。
帮助内容如下:
顾名思义,就是将当前“窗口”设置成“对话框风格”。
代码编写(1):
直接将“基础类”改名“对话框窗口”即可。
或者也可以利用“@安卓.附加清单”属性,修改属性值为“常用窗口附加清单.对话框窗口”。
设置后仅对当前窗口有效。
运行效果如下图:
运行后“窗口”会变成“对话框”风格显示。
● 安卓5无标题窗口
以上窗口模式是通过改变“材质风格”(类似窗口皮肤)实现,此处举例“安卓5无标题白色窗口”。
注意:以上窗口风格需要安卓系统5.0(即API级别21)以上才能使用.
帮助内容如下:
顾名思义,就是将当前“窗口”设置成“白色无标题”风格。
代码编写如下图:
直接将“基础类”改名“安卓5无标题白色窗口”即可。
运行效果如下图:
左图:“安卓5无标题白色窗口”的效果图。
右图:通过“常用窗口附加清单.无标题白色窗口”设置的无标题白色窗口效果。