窗口组件基础类实例讲解

作者:创世魂

 

● 辅助说明

注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。

 

● 帮助文档查看

“窗口组件类”操作,属于“所有窗口组件”的基础类。

并不能直接运行处理,需要借助具体的“窗口组件”来操作其中的方法。

例如:按钮,编辑框,文本框等所有窗口上能看到的组件。

例如:选择“文本框”组件,在右侧“帮助页”就可以看到“继承自窗口组件的公开成员”等字样。

每一个窗口组件都会继承自“窗口组件”所有的操作方法。

点击具体的方法名称,就可以查看具体更加详细的帮助。

此教程就以“文本框”为例,讲解“窗口组件”所有的公开成员。

关于“文本框”的教程,会单独进行讲解。

 

● 准备工作

 

界面如下图:

打开窗口设计器,拖放两个“按钮”,一个“文本框”和一个“线性布局器”

分别起名“按钮1、按钮2”“文本框1”


保存布局后,右键“按钮”选择“添加事件接收方法”

然后去添加“按钮_被单击”事件。

最终达到如图所示的效果。

 

 

一、通常方法

 

● 本分类说明

 

通常方法,需要通过“类实例+方法”调用。

何为“类实例”简单来说就是创建变量的形式来调用当前的方法。

如下图所示:

调用“加法计算”时,需要定义“计算类”的变量,才能够调用。

而这个“计算类”变量就是类实例,这种形式调用的方法,就属于“通常方法”

 

 

● 创建窗口组件

 

帮助文档如下图:

顾名思义,通过本方法可以动态创建窗口组件。

参数1:输入要创建“窗口组件”的名称。

例如要创建“按钮”直接在参数内输入“按钮”即可。

参数2:如果无特殊需求,省略即可。

 

代码编写如下图:

直接在“按钮1”被单击下,定义一个“按钮”变量起名“按钮3”

然后通过“文本框1”调用本方法赋值给“按钮3”即可,参数内直接填写“按钮”

随后可以通过“按钮3”设置按钮标题等信息。

最后可以利用“线性布局器1”“添加子组件”方法,将按钮加入到窗口中。

 

运行效果如下图(GIF):

可以看到“按钮1”被点击后,“按钮3”成功创建。

 

 

 

● 取内边距
● 置内边距

 

“取内边距”帮助文档如下图:

顾名思义,取出当前组件的“内边距”,返回的是“矩形类”

通过“矩形类”“上下左右”四个读属性,可以读取出具体的像素值。

如果当前组件为设置“内边距”,最后将全部“返回0”.

 

“置内边距”帮助文档如下图:

顾名思义,设置当前组件的内边距,单位像素。

把想要设置的内边距像素,依次填入参数即可。

如果当前组件是“文本框”就设置文本框的“内边距”,如果是“按钮”调用,那就会设置按钮的内边距。

 

代码编写如下图:

判断“按钮1”被点击后,执行“置内边距”方法,分别设置10像素的内边距。

判断“按钮2”被点击后,执行“取内边距().X”方法,

分别读取“上下左右”四个读属性,最后“到文本”转换赋值给文本框显示。

 

运行效果如下图(GIF):

可以看到首先点击“按钮2”,取出来的内边距全部是0。

点击“按钮1”后再去点击“按钮2”,取出来的内边距就变成了“10”像素。

并且还可以看到,文本框组件明显的发生了位置变动。

 

 

● 置外边距
● 置外边距2
● 取外边距

 

“置外边距”帮助文档:

本方法顾名思义,就是设置当前组件的外边距。

如果当前组件是“文本框”就设置文本框的外边距,如果是“按钮”调用,那就会设置按钮的外边距。

通过“矩形类”“上下左右”四个写属性即可设置边距。

 

“置外边距2”帮助文档:

本方法和“置外边距”不同之处在于,本方法四个参数,可以直接指定像素值。

如果忽略参数或者填写“-1”,将不会改变原有边距。

 

“取外边距”帮助文档:

顾名思义,取出外边距。

通过“矩形类”的上下左右四个读属性即可读取外边距。

 

代码编写如下图:

“置外边距”调用方式。

 

“置外边距2”调用方式,选中其中任意一种即可。

 

运行结果如下图(GIF):

点击“按钮2”取出的是0,因为在此之前并没有设置过外边距。

点击“按钮1”后重新去点击“按钮2”此刻就会将设置的外边距读取出来。

 

 

● 取命中矩形

 

帮助文档如下图:

简单来说,就是取出当前组件的矩形区域位置坐标,本方法并不常用。

 

代码编写如下图:

“取外边距”方法一样,直接调用本方法后,继续调用“上下左右”四个读属性即可。

 

运行结果如下图:

成功取出“文本框”的矩形区域坐标。

 

 

● 取宽度
● 取高度
● 取需求宽度
● 取需求高度
● 置需求宽度
● 置需求高度

 

以上六个方法统一讲解说明。

 

“取宽度”帮助文档:

简单来说,取出当前组件的“实际宽度”

但是必须保证当前组件已经布局完毕,并且有父组件,否则会返回0.

正常在窗口上拖放的组件都有父组件,即窗口本身。

所以通常情况下到也不必担心父组件有没有情况。

 

“取高度”帮助文档:

本方法同上,取出当前组件的实际高度。

 

“取需求宽度”帮助文档:

本方法的返回值,并不能保证是准确精确的数值。

如果当前组件设置了宽度类型为“填满父组件”,最后的结果会是“填满父组件”的常量值。

另外使用本方法也必须保证,当前组件有父组件。

 

“取需求高度”帮助文档:

顾名思义,本方法的作用就是用来取出高度值。

 

“置需求宽度”帮助文档:

顾名思义,设置当前的需求宽度。

通过本方法可设置“填满父组件”等常量值,也可以是精确的数值。

 

“置需求高度”帮助文档:

顾名思义,设置当前的组件高度。

通过本方法可设置“填满父组件”等常量值,也可以是精确的数值。

 

代码编写如下图:

首先可以修改一下文本框的“背景色”“文本颜色”,方便和火山黑色窗口区分开。

然后在“按钮1”被单击后分别取出对应宽度赋值给文本框显示。

“按钮2”被点击后,设置需求高/宽度。

其中一个设置常量值,另一个设置固定值。

 

运行效果如下图(GIF):

可以看到,直接点击“按钮1”取宽度时,前两个方法正常,后两个方法取出的为“-1”

此处的“-1”代表“等于内容尺寸”的常量值,默认“文本框”的需求高/宽度就是等于内容尺寸。

点击“按钮2”后重新点击“按钮1”,所有的数值都发生了变化。

 

 

● 取所处窗口

 

帮助文档如下图

顾名思义,通过本方法可以取出当前组件所在的窗口对象。

如果不存在则返回空对象。

简单来说本方法的作用就等同于“本对象”

 

代码编写如下图:

定义“系统相机类”变量,通过“相机1”可调用“浏览相册”方法。

“浏览相册”的参数为“窗口”,可使用本方法。

 

运行效果如下图(GIF):

可以看到点击“按钮1”后,成功打开了系统相册。

点击查看“浏览相册”的图文教程。

 

 

● 取扩展标签对象
● 置扩展标签对象

 

“置扩展标签对象”帮助文档:

标签分为两类,默认标签和扩展标签。

本方法是设置指定对象的“扩展标签对象”

通俗理解,其实就是给指定对象打上一个标签。

 

“取扩展标签对象”帮助文档:

本方法的作用就是根据设置的标签,将对象取出。

 

代码编写如下图:

首先需要定义一个“ID值资源”变量,初始值设置一个空文本。

随后就可以调用“置扩展标签对象”方法,给“按钮1”打上“ID值”标签。

“按钮2”被单击的时候,需要定义一个“按钮”变量,设置参考。

随后调用“取扩展标签对象(ID值)”取出对象,然后强转为“按钮”赋值给按钮变量。

最后就可以通过“按钮3.内容”读取出来“按钮1”的标题。

 

运行效果如下图:

最终可以成功看到“按钮1”标题显示在了“文本框”中。

 

 

● 取默认标签对象
● 置默认标签对象

 

“置默认标签对象”帮助文档:

本方法和上一个方法的区别就是,本方法少了一个“ID值资源”的参数。

本方法可以理解为,该ID值已经被内置,不需要填写。

 

“取默认标签对象”帮助文档:

顾名思义,通过本方法取出默认的标签对象。

 

代码编写如下图:

本方法的代码和“扩展标签对象”基本一致,不同之处就是少了一个“ID值”

不再详细介绍,可看图内的注释。

 

运行效果如下图:

最终可以成功看到“按钮2”标题显示在了“文本框”中。

 

 

● 取焦点组件

 

帮助文档如下图:

本方法的作用,就是取出当前可以“直接或者间接”获得输入焦点的组件。

如果不存在或者不是火山窗口组件,将会返回“空对象”

 

代码编写如下图:

定义两个变量,类型分别为“窗口组件”“编辑框”

然后通过“文本框1”调用本方法,赋值给窗口组件变量。

然后用“如果”判断“窗口组件1”是否等于“空对象”

如果等于就弹出提示,不等于就强转为“编辑框”

最后可以操作编辑框设置内容等等……

 

运行效果如下图:

点击“按钮1”会弹出提示框,因为当前界面内并没有编辑框的存在。

 

 

● 取父组件

 

帮助文档如下图:

顾名思义,取出父组件容器。

如果当前组件没有父组件或者不为火山窗口组件,将返回空对象。

具体关于“窗口容器组件”的一些方法说明,可点击进去查看。

 

代码编写如下图:

“按钮1”被点击下,定义一个“窗口容器组件”的变量, 设置参考。

然后调用本方法赋值给“容器组件”

最后判断是否为空对象,不为空的时候可以调用“删除子组件”方法,删除一个组件。

例如:此处删除的是“按钮2”

 

运行结果如下图(GIF):

编译运行后,可以看到“按钮2”被删除,证明“文本框1”存在父组件。

 

 

● 取背景图
● 置背景图

 

“置背景图”帮助文档:

顾名思义,给当前组件设置背景图。

背景图为“可绘制对象类”,并非“可绘制资源”,千万不要看错了。

 

“取背景图”帮助文档:

顾名思义,把当前组件设置的“可绘制对象类”取出并返回。

 

代码编写如下图:

“按钮1”被点击后,定义“可绘制资源”变量,点击初始值按钮导入一张图片。

利用“载入可绘制资源”方法,可以将“可绘制资源”转换为“可绘制对象类”

通过“文本框1”调用“置背景图”就可以设置当前文本框的背景图。

然后在“按钮2”被点击时,你想让“按钮2”的背景和“文本框1”一致。

可以直接写“按钮2.置背景图(文本框1.取背景图())”即可。

 

运行效果如下图:

可以看到“按钮2”“文本框1”的背景图,最后是同样的图片。

 

 

● 所处窗口是否获得焦点

 

帮助文档如下图:

顾名思义,判断组件所处窗口是否获得焦点。

获得焦点返回“真”,否则返回“假”

 

代码编写如下图:

直接用“如果”来判断本方法的返回值即可。

然后弹出对应提示。

 

运行效果如下图:

最后可以看到“文本框1”在当前窗口,属于获得焦点状态。

 

● 提升组件到最前面

 

帮助文档如下图:

简单来说,本方法的作用就是将“指定组件”提升到“所有组件”的最前面。

本方法通常情况下只有在使用“帧布局器”时用得到。

 

界面准备如下图:

左侧组件框找到“帧布局器”进行拖放。

然后在“帧布局器”内,放一个“文本框”,设置组件宽度为“匹配父组件宽度”

然后继续拖放一个“编辑框”

点击“布局内容”就可以看到“帧布局器”下有两个组件,确认无误后保存布局。

 

代码编写如图下图:

首先给“编辑框1”调整背景色,设置内容方便区分。

最后在“按钮1”被单击下调用本方法,提升“文本框1”到所有组件的最前面。

 

运行结果如下图(GIF):

可以看到“按钮1”点击后,文本框立刻就覆盖了编辑框。

 

● 播放声音效果

 

帮助文档如下图:

顾名思义,就是在单击“当前组件”的时候是否进行声音播放。

声音效果通过“组件声音效果.XXX”定义的常量值来指定。

并且务必保证“允许声音效果”属性值为“真”

 

代码编写如下图:

按照帮助文档中,首先设置“允许声音效果”“真”

随后设置文本框“支持单击”属性为“真”,因为“文本框”默认不支持单击。

最后可以调用当前方法,就可以实现点击“文本框1”时播放单击音效。

 

 

● 是否不透明

 

帮助文档如下图:

顾名思义,用来判断当前组件是否透明。

返回真表示不透明,返回假表示透明或者半透明。

 

代码编写如下图:

“按钮1”被点击的时候直接判断本方法的返回值即可,然后弹出对应提示。

“按钮2”被点击的时候,首先设置“文本框1”透明度,然后在进行判断。

 

运行效果如下图(GIF):

最终可以看到“按钮2”被点击后,“文本框1”明显变黑了一些,这是因为透明到背景的缘故。

 

 

● 是否获得焦点

 

帮助文档如下图:

顾名思义,判断当前组件或者子组件是否有焦点。

如果存在焦点返回真,否则返回假。

根据自己的需求,决定参数中是否填写“真”“假”

 

代码编写如下图:

直接判断本方法的返回值即可。

 

运行效果如下图:

最后会提示“没有焦点”代表文本框并没有获得焦点。

 

 

● 是否被显示

 

帮助文档如下图:

简单来说就是判断当前组件是否隐藏。

如果处于显示状态,返回真,否则就返回假。

 

代码编写如下图:

分别在两个按钮被单击下,都调用本方法判断当前组件是否显示。

“按钮2”被点击,额外填写一个“可视”属性,设置为隐藏。

 

运行效果如下图(GIF):

 

 

● 查找子组件

 

帮助文档如下图:

本方法只有容器类组件才有作用。

本方法可参考“窗口操作”中的例子。

 

 

● 查找焦点组件

 

帮助文档如下图:

简单来说就是查找焦点组件。

如果没有或者不存在,则返回空对象。

 

代码编写如下图:

定义“窗口组件”变量,然后利用本方法赋值即可。

最后用如果判断是否为“空对象”

然后执行对应的方法。

 

运行效果如下图:

最后会弹出“当前没有焦点组件”

 

 

● 标签查找子组件

 

帮助文档如下图:

本方法也通常用于容器类的组件,例如:线性布局器等……

关于“标签”可点击可查看“默认标签对象”的帮助文档。

 

 

● 模拟组件单击
● 被单击(事件)
● 支持单击(读)
● 支持单击(写)

 

“模拟组件单击”帮助文档:

通过本方法可以当前组件被点击,并且还可以从参数设置是否播放音效等。

注意:前提是必须设置了播放音效才有用。

 

“被单击(事件)”帮助文档:

此方法为事件方法,当组件被点击后会发送本事件方法。

注意:除了“按钮”“图片按钮”外,其它类别的组件都要设置“支持单击”属性为真,否则本事件不会发送。

 

“支持单击(写)”帮助文档:

本写属性的作用,就是用来设置当前组件是否支持单击。

设置“真”表示支持,否则不支持。

 

“支持单击(读)”帮助文档:

本读属性的作用,用来判断当前组件是否支持单击。

支持返回真,不支持返回假。

 

代码编写(1):

首先在“按钮1”被点击下,判断是否支持单击。

如果不支持,则设置“支持单击”属性为真。

然后调用“模拟组件单击”命令。

如果当前组件支持单击,则直接调用“模拟组件单击”命令。

 

代码编写(2):

右键“文本框”选择“添加事件接收方法”

 

代码编写(3):

选择“文本框_被单击”或者“窗口组件_被单击”都可以。

选择其中一个后,点击“添加”

 

代码编写(4):

添加之后,依然是判断来源对象等于“文本框1”

然后弹出一个提示框,来表示“文本框”被单击。

 

运行效果如下图(GIF):

第一次:点击“文本框”时,文本框无任何反应。

第二次:点击“按钮1”后,弹出了“文本框被点击”提示。

随后单独单击“文本框”或者“按钮”都会弹出同样的提示。

间接证明,“按钮1”被点击的时候同时也模拟了“文本框1”被点击。

 

 

● 模拟组件触觉反馈
● 触觉反馈(读)
● 触觉反馈(写)

 

以上三个方法为关联方法,此处统一讲解。

 

“模拟组件触觉反馈”帮助文档如下图:

触觉反馈,即一种触摸效果,通过本方法可以模拟触摸效果。

例如:“组件触觉反馈类型”中有一个“长按”类型。

通常情况下在长按组件的时候,会有一个触觉反馈,一般表现为轻微的震动感。

通过本方法如果设置类型为“长按”即可模拟这种“真实长按”带来的震动感。

注意:本方法必须将“触觉反馈”属性设置为“真”才会生效。

 

“触觉反馈(写)”帮助文档:

本写属性的作用,就是用来设置是否开启“触觉反馈”

开启后“模拟组件触觉反馈”方法才能有效的使用。

 

“触觉反馈(读)”帮助文档:

本读属性的作用,就是用来判断是否开启了触觉反馈。

开启返回真,否则返回假。

 

代码编写如下图:

直接可以在“按钮1”被单击下,判断是否开启了触觉反馈。

如果没有开启,则设置“触觉反馈”属性值为真。

最后调用“模拟组件触觉反馈”方法即可。

本方法并不常用,图文教程也无法演示触觉反馈,自行测试。

注意:并非所有设备都支持触觉反馈,如果你手机关闭了触觉反馈功能,那么此方法无效。

 

● 被长按(事件)
● 支持长按(读)
● 支持长按(写)

 

“被长按(事件)”帮助文档:

本事件只有在“窗口组件”被长按时(通常为1秒左右),才会发送。

注意:必须将要长按的组件“支持长按”属性设置为真。

注意:在组件长按过程中,如果想要不触发“被单击”事件,可填写本事件的返回值为“1”即可。

 

“支持长按(写)”帮助文档:

顾名思义,设置当前组件是否支持长按属性。

属性值为真,表示支持长按,否则不支持。

 

“支持长按(读)”帮助文档:

顾名思义,读取当前组件是否支持长按属性。

返回真表示支持,否则不支持。

 

代码编写如下图:

首先在“按钮1”被单击下,判断文本框是否支持长按,如果不支持就开启长按。

然后去,添加“窗口组件”被长按事件。

添加后指定来源对象,弹出一个被长按的提示框。

 

运行效果如下图(GIF):

可以看到,最开始无论如何去长按文本框都不会弹出提示。

点击“按钮1”后,长按文本框后就会弹出提示。

 

 

● 模拟组件长按

 

帮助文档如下图:

顾名思义,通过本方法可以模拟组件的长按事件。

 

代码编写如下图:

只需要在上一个方法代码的基础上,增加判断“按钮2”被单击。

然后通过文本框调用本方法即可。

 

运行效果如下图(GIF):

最后可以看到“按钮2”点击后也弹出了“被长按”的提示。

 

 

● 滚动内容到
● 滚动内容

 

“滚动内容到”帮助文档:

顾名思义,滚动组件内的内容。

注意:并非组件本身。

通过本方法,可以将组件的内容滚动到指定的像素位置。

如果需要横向滚动,参数1填写指定数值,参数2填写0即可。

如果需要纵向滚动,参数1填写0,参数2填写指定数值即可。

 

“滚动内容”帮助文档如下图:

本方法和上一个方法不同之处在于,本方法可以实现增量滚动。

也就是在原位置的基础上继续滚动指定像素位置。

 

界面准备:

首先打开界面设计器,指定“文本框1”的高度值为固定值。

 

代码编写(1):

保存布局后,增加“文本框1”“内容”属性,打开属性值编辑器。

在编辑器内输入有很多换行的文本。

 

代码编写(2):

“按钮1”被点击执行“滚动内容”方法,参数1填写“0”,参数2填写“10”

表示当前文本框增量10像素滚动。

“按钮2”被点击执行“滚动内容到”方法,表示一次滚动40像素的位置。

 

运行效果如下图:

可以看到不停的点击“按钮1”文本框内的文本会不停的滚动。

点击“按钮2”就会滚动到指定的位置。

 

 

● 置状态背景图

 

帮助文档如下图:

顾名思义,设置当前组件的状态背景图。

例如:通常状态,被按下状态分别是什么图片。

需要通过定义“状态到图像表”变量来调用。

 

代码编写如下图:

定义一个“状态到图像表”变量,增加两个属性分别为“通常”“被按下”然后分别导入两张图片。

设置文本框“支持单击”属性为“真”

最后将定义的变量写入当前方法的参数中即可。

 

运行结果如下图:

可以看到文本框有了“正常”“按下”两种状态的背景图。

 

 

● 置边框背景

 

帮助文档如下图:

顾名思义,通过本方法可以设置当前组件的边框背景。

边框通过“常用边框类型.XXX”来指定,例如:“常用边框类型.圆角矩形”

其它参数根据自己的实际需求填写即可。

 

代码编写如下图:

“按钮1”被单击下,直接调用本方法依次填写对应参数即可。

 

运行结果如下图:

最后可以看到文本框的外形和颜色都发生了改变。

 

 

● 置需求尺寸

 

帮助文档如下图:

通过本方法可以同时设置当前组件的,高度值和宽度值。

如果没有父组件,则本方法无效,单位为像素值。

参数可填写“窗口组件.填满父组件”等常量值。

 

代码编写如下图:

“按钮1”被单击下,直接调用本方法依次填写对应参数即可。

 

运行结果如下图:

最后可以看到文本框1的尺寸发生了变化。

 

 

● 获得焦点
● 释放焦点
● 可否获得焦点(读)

 

以上三个方法为关联方法,此处统一讲解。

 

“获得焦点”帮助文档:

顾名思义,通过本方法可以让当前组件获得焦点。

注意:并非所有的组件都可以通过本方法获得焦点。

 

“释放焦点”帮助文档:

顾名思义,将当前组件的焦点释放掉。

注意:并不能保证一定能将当前焦点释放。

例如:经实测,窗口上只有一个编辑框,想释放编辑框的焦点,必然会释放失败。

 

“可否获得焦点(读)”帮助文档:

本读属性的作用就是来判断当前组件是否支持获得焦点。

 

代码编写如下图:

“按钮1”被单击下,首先调用“可否获得焦点”读属性来判断,当前文本框是否支持获得焦点。

如果支持,就执行获得焦点方法,如果不支持就弹出提示。

另外还可以调用“是否获得焦点”方法来判断当前组件是否真正的获得焦点。

“按钮2”被点击后执行“释放焦点”方法。

同样也可以调用“是否获得焦点”方法来判断是否释放成功。

 

运行结果如下图:

最后可以看到当前“文本框1”并不支持获得焦点。

“文本框1”并没有获得焦点,因此点击按钮2“释放焦点”的时候,自然会提示“焦点释放成功”

 

 

 

● 弹出菜单
● 弹出菜单项被选择(事件)

 

“弹出菜单”帮助文档:

顾名思义,在当前组件上弹出指定菜单。

关于菜单信息可点击查看“菜单信息操作”

 

“弹出菜单项被选择(事件)”帮助文档:

当选择“弹出菜单”方法所弹出的菜单时,将会发送本事件。

通过“菜单项”参数,可以取出被选择菜单的“标题”“ID”等信息。

 

代码编写(1):

设置窗口“背景色”为白色,方便区分黑色的菜单。

定义“菜单信息”变量,然后调用“加入菜单项”即可加入菜单。

最后调用本方法,将变量填入参数中即可弹出菜单。

 

代码编写(2):

添加“窗口组件_弹出菜单项被选择”事件。

指定来源对象为“文本框1”后,就可以通过“所选择菜单项”参数取出菜单标题。

 

运行效果如下图(GIF):

可以看到“按钮1”内点击后成功弹出菜单。

选择菜单后,也弹出了对应菜单标题。

 

● 显示上下文菜单

 

帮助文档如下图:

上下文菜单,简单来说就是长按指定组件,在当前窗口弹出一个菜单。

关于“上下文菜单”可点击查看“上下文菜单操作”

 

代码编写如下图:

首先在“通知_被创建”方法下,开启上下文菜单支持。

随后在“通知_初始化组件上下文菜单”方法下,添加想要显示的菜单。

最后,在按钮1被单击下,调用“显示上下文菜单”即可。

 

运行效果如下图(GIF):

可以看到成功弹出上下文菜单。

注意:部分安卓系统,菜单显示位置可能略有不同。

 

 

 

 

二、静态方法

 

● 本分类说明

 

静态方法,直接“类名+方法名”就可以调用。

如下图所示:

调用“加法计算”时,直接调用“类名+方法名”就可以调用。

 

 

● 生成组件ID置
● ID(写)
● ID(读)

 

“生成组件ID置”帮助文档:

顾名思义,给当前组件生成一个可使用的ID值。

本方法通常情况下不需要调用,因为组件本身在创建的时候,系统会自而动赋值一个“id值”

关于ID值的应用场景可参考“对话框类->查找组件”

 

“ID(写)”帮助文档:

本写属性的作用,就是给当前组件赋值一个新的ID值,原ID将会覆盖。

 

“ID(读)”帮助文档:

本读属性的作用,就是将当前组件的ID值读取出来,返回值为整数。

 

代码编写如下图:

“按钮1”被单击下,给“ID”写属性赋值当前方法。

“按钮2”被单击下,读取“ID”值显示在“提示框”中。

 

运行效果如下图(GIF):

此处可以看到“按钮2”被点击后,在弹出的提示中可以看到,组件默认会有一个很长的id值。

“按钮1”点击后,重新点击“按钮2”组件id将会更新。

 

 

三、属性读写方法

 

● 本分类说明

 

本分类中的所有属性,均有同名的读写属性。

例如:“上内边距”可以当读属性使用,也可以当写属性使用。

 

● 上内边距(读写)
● 下内边距(读写)
● 左内边距(读写)
● 右内边距(读写)

 

以上四个读写属性,就是字面上的意思,读取和设置当前组件的内边距,单位为像素。

此处就不再截图查看帮助文档,自行查看。

 

代码编写如下图:

“按钮1”被单击时,分别设置内边距。

“按钮2”被单击时,分别读取内边距显示在文本框中。

 

运行效果如下图(GIF):

可以看到点击“按钮2”读取时,内边距默认为0.

当点击“按钮1”设置内边距后,内边距会修改为50像素,随后点击“按钮2”也成功读取。

 

 

● 允许声音效果(读写)

 

“允许声音效果(写)”帮助文档:

顾名思义,是否开启当前组件的声音单击效果。

本属性在“播放声音效果”中调用过。

 

“允许声音效果(读)”帮助文档:

顾名思义,读取当前是否开启了声音效果。

如果已经开启,则返回真,否则返回假。

 

代码编写如下图:

可以首先判断当前文本框是否开启了声音效果。

如果未开启则执行写属性开启。

最后开启“文本框1”的支持单击属性,然后调用“播放声音效果”即可。

最终结果点击“按钮1”后去点击“文本框1”,此时会发出“嘟嘟”声。

注意:部分设备的点击声可能有所不同,图文教程无法演示,自行测试。

 

 

● 内容垂直偏移(读写)
● 内容水平偏移(读写)

 

“内容垂直偏移(写)”帮助文档:

顾名思义,本写属性就是用来设置当前组件内容的垂直偏移,单位为像素。

 

“内容垂直偏移(读)”帮助文档:

本读属性的作用,就是用来读取当前组件内容的垂直偏移量。

 

“内容水平偏移(写)”帮助文档:

本写属性的作用,就是用来设置当前内容的水平偏移,单位依然是像素。

 

“内容水平偏移(读)”帮助文档:

本读属性就是用来读取当前内容的水平偏移量。

 

代码编写如下图:

“按钮1”被点击后设置内容偏移,“按钮2”点击读取偏移。

 

运行效果如下图(gif):

可以看到,除了设置偏移后内容位置发生改变。

还可以看到读取内容偏移时,文本框内容位置恢复了正常。

证明:文本框内容被改变后,偏移会重置。

 

 

● 内容描述(读写)

 

“内容描述(写)”帮助文档:

本写属性的作用,就是用来设置当前按钮的“内容描述”文本。

可以理解为,被隐藏的标题。

 

“内容描述(读)”帮助文档:

本读属性的作用,就是用来读取当前的内容描述文本。

 

代码编写如下图:

“按钮1”被点击后设置当前“文本框1”的内容描述。

如果不是“按钮1”点击,就读取“内容描述”到文本框的内容之中。

 

运行效果如下图:

可以看到,如果在不设置“内容描述”的情况下,直接“读取内容描述”程序会发生闪退。

这是因为在未设置时,当前内容描述为空对象,空对象并不能赋值给文本框,所以发生了闪退。

只有设置了“内容描述”后,程序才不会发生闪退。

同时也间接证明:所有的组件,自身不会带任何内容描述,需要手动设置。

 

 

● 可视(读写)

 

“可视(写)”帮助文档:

顾名思义,本写属性的作用就是用来设置当前组件的可视状态。

通过“组件可视状态.XXX”来实现。

 

“可视(读)”帮助文档:

本读属性的作用,就是用来读取当前组件的可视状态,返回值为“组件可是状态”类。

 

界面准备如下图:

打开界面设计器,准备一个如下图所示的界面。

组件从上到下分别是:按钮1,按钮2,文本框1,按钮3和按钮4。

 

代码编写如下图:

“按钮1”被点击后,设置“可视”属性为“组件可是状态.可视”

“按钮2”被点击后,设置“可视”属性为“组件可是状态.隐藏但保留位置”

“按钮3”被点击后,设置“可视”属性为“组件可是状态.完全隐藏”

“按钮4”被点击后,分别判断每一个可视状态,然后弹出对应提示。

 

运行效果如下图:

 

 

● 垂直\水平位置(读写)
● 垂直\水平偏移(读写)
● 垂直\水平旋转角度(读写)
● 垂直\水平缩放比(读写)

 

以上读写属性,功能一致,但方向不同。

此处重点讲解“垂直”位置的读写属性,“水平”方向不再讲解自行测试。

 

“垂直位置(写)”帮助文档:

顾名思义,设置当前组件的垂直位置。

属性值可以精确到小数。

如果在此之前并没有设置“垂直偏移”属性,那么此数值其实也就是组件距离“顶边”的位置。

 

“垂直位置(读)”帮助文档:

顾名思义,读取当前组件的“垂直位置”

也可以通过取出“顶边”+“垂直偏移”来取出垂直位置。

 

代码编写如下图:

“按钮1”被点击后,设置垂直位置为“300”

“按钮2”被点击后,读取垂直位置到“文本框1”

 

运行效果如下图(gif):

如果直接点击“按钮2”去读取,可以看到当前组件是有“垂直位置”属性值的。

点击“按钮1”重新设置后,“垂直位置”属性值将更新。

 

 

“垂直偏移(写)”帮助文档:

顾名思义,设置当前组件的垂直偏移。

注意:本属性是设置组件自身,而不是组件内容。

简单来说,就是在原有位置基础上,垂直增加多少像素的距离。

 

“垂直偏移(读)”帮助文档:

本读属性的作用自然就是用来读取当前的“垂直偏移”数值。

如果未曾设置过“垂直偏移”,那么将“返回0”.

 

代码编写如下图:

“按钮1”被点击后,执行“垂直偏移”写属性。

“按钮2”被点击后,读取当前属性赋值给“文本框1”

 

运行效果如下图(gif):

如果直接点击“按钮2”去读取,可以看到当前属性值默认为0。

点击“按钮1”设置偏移后,“垂直偏移”属性值将更新,并且也可以看到文本框组件位置发生改变。

 

 

“垂直旋转角度(写)”帮助文档:

顾名思义,本写属性的作用就是用来设置当前组件的旋转角度。

可以把当前平面的组件理解为一个3d组件。

调用本属性后,当前组件会进行横向旋转。

 

“垂直旋转角度(读)”帮助文档:

顾名思义,读取当前组件的“垂直旋转角度”

 

代码编写如下图:

“按钮1”被点击后,设置旋转60度。

“按钮2”被点击后,读取角度到“文本框1”

 

运行效果如下图(gif):

“按钮2”首先被点击时,默认角度为0.

点击“按钮1”后,可以看到组件发生了横向旋转。

具体表现为:组件左侧向外移动,组件右侧向内移动。

重新点击“按钮2”就会度取出当前的旋转角度。

 

 

“垂直缩放比(写)”帮助文档:

顾名思义,设置当前组件的缩放比。

属性值以1为基数,数值越大组件将会等比例的纵向放大。

 

“垂直缩放比(读)”帮助文档:

顾名思义,读取当前组件的“垂直缩放比”

 

代码编写如下图:

点击“按钮1”后,设置属性值为“2”,表示放大两倍。

“按钮2”被点击后,读取缩放比到“文本框1”

 

运行效果如下图(gif):

如果直接点击“按钮2”去读取,可以看到默认缩放比是“1”

点击“按钮1”后,可以明显的看出,组件进行了纵向拉伸。

再次点击“按钮2”成功读取缩放比。

 

 

● 强制屏幕打开(读写)

 

“强制屏幕打开(写)”帮助文档:

简单来说,通过本方法可以设置当前屏幕“开启常亮模式”,设置为真表示开启,为假表示关闭。

注意:部分手机可能为了节能省电等功能,当前属性并不一定能够正常使用。

 

“强制屏幕打开(读)”帮助文档:

顾名思义,读取当前屏幕是否处于强制开启状态。

返回真,表示屏幕强制开启。

 

代码编写如下图:

可以点击“按钮1”设置强制开启屏幕,“按钮2”被点击后,判断当前屏幕状态。

图文教程无法准确演示效果,自行测试。

测试方法:强制开启屏幕后,长时间观察,看看屏幕是否处于常亮模式。

如果开启后屏幕依然自动熄灭,就证明当前手机并不支持开启屏幕常亮。

 

 

● 旋转角度(读写)

 

“旋转角度(写)”帮助文档:

顾名思义,设置当前组件的旋转角度,设置后将围绕组件中心位置,进行顺时针旋转。

单位:度。

 

“旋转角度(读)”帮助文档:

顾名思义,读取当前设置的旋转角度。

本属性值,默认为0。

 

代码编写如下图:

点击“按钮1”设置角度,“按钮2”被点击后读取旋转角度到文本框。

 

运行效果如下图(GIF):

可以看到“按钮1”被点击后,文本框组件进行了旋转。

 

 

● 是否被按下(读写)

 

“是否被按下(写)”帮助文档:

顾名思义,设置当前组件是否为“被按下”状态。

如果属性值为真,则按下状态,否则是正常状态。

 

“是否被按下(读)”帮助文档:

顾名思义,读取当前是否处于被按下状态。

默认返回“假”

 

代码编写如下图:

定义“状态到图像表”变量,分别给属性名“通常”“被按下”导入两张图片。

调用“置状态背景图”方法,将“图片表”变量写入参数中。

随后开启文本框1倍单击属性。

最后设置“是否被按下”属性值为“真”

“按钮2”被点击后,就判断当前属性值是否等于真,然后弹出对应提示即可。

 

运行效果如下图(GIF):

可以看到“按钮1”被点击后,文本框会变成蓝色,即“lan.png”图片被设置为背景。

“lan.png”图片属于“被按下”属性,也就证明当前组件处于被按下状态。

“按钮2”被点击,也印证了这个结果。

 

 

● 标签文本(读写)

 

“标签文本(写)”帮助文档:

通过本属性可以给当前组件设置一串文本当做标签。

如果调用本属性后,又调用了“置默认标签对象”那么当前值会被覆盖。

本写属性的作用和“内容描述”类似。

 

“标签文本(读)”帮助文档:

读取当前组件设置的标签文本,如果未设置返回空文本。

 

代码编写如下图:

“按钮1”被点击后,随便设置一串标签文本。

“按钮2”被点击后,读取标签文本到“文本框1”显示。

 

运行效果如下图(GIF):

“按钮1”被点击后,去点击“按钮2”设置的标签文本就会显示在文本框1中。

 

 

● 激活(读写)

 

“激活(写)”帮助文档:

通过本属性可设置当前组件是否处于激活状态。

设置“真”表示激活,否则相反。

 

“激活(读)”帮助文档:

返回当前组件是否处于激活状态。

返回“真”表示当前处于激活状态,否则返回假。

所有组件,默认返回“假”

 

代码编写如下图:

直接用如果判断当前组件是否激活。

如果未激活就设置当前组件为激活状态。

 

运行效果如下图(GIF):

最终的结果就是。

第一次点击“按钮1”提示“没有激活”,第二次点击后就会提示“激活”

 

 

● 触摸模式下可获得焦点(读写)

 

“触摸模式下可获得焦点(写)”帮助文档:

设置当前组件在触摸模式下是否可以获得焦点。

属性值为“真”表示可以获得,设置为“假”则不能获得。

 

“触摸模式下可获得焦点(读)”帮助文档:

返回当前组件,是否支持触摸模式下获得焦点。

返回“真”表示当前组件支持触摸获得焦点。

如果当前组件为“编辑框”组件,并且“许可”属性为真,那么此属性必定返回“真”

 

代码编写如下图:

首先用“如果”判断是否可以获得焦点。

然后弹出“提示框”,调用写属性设置可以获得。

否则就提示“不可以获得焦点”

 

运行效果如下图(GIF):

最终弹出提示“不可以获得焦点”

如果把代码中的“文本框1”换成“编辑框1”那么必定会提示“可以获得”

 

 

● 许可(读写)

 

“许可(写)”帮助文档:

本写属性的作用,就是来设置当前组件是否允许交互。

例如:点击,长按,触摸,手势等各种操作。

设置为“真”表示支持,否则禁止任何操作。

 

“许可(读)”帮助文档:

返回当前组件是否可以操作。

返回“真”表示支持,否则相反。

 

代码编写如下图:

“按钮1”被点击,定义“状态到图像表”变量。

“被按下”“通常”两个属性值,导入两张图片。

最后给调用“置状态背景图”方法和“支持单击”写属性。

“按钮2”被点击时,首先判断是否可用。

如果可用则弹出提示后,调用“许可”写属性设置为“假”

否则直接弹出提示“不可以点击”

 

运行效果如下图(GIF):

 

 

● 透明度(读写)

 

“透明度(写)”帮助文档:

设置当前组件的透明度。

属性值位于“0到1”之间,0为完全透明,1为不透明。

如果填写“0.5”则透明一半。

 

“透明度(读)”帮助文档:

返回当前组件的透明度

返回值必定位于“0到1”之间。

 

代码编写如下图:

调用“背景色”写属性,设置窗口背景色(方便区分是否透明)。

然后调用写属性,设置透明度为0.5。

最后调用读属性,读取透明度显示在文本框中。

 

运行效果如下图(GIF):

“按钮1”被点击后,可以看到“文本框1”明显变透明了。

 

 

● 最小期望宽度/高度(读写)

 

此处以“最小期望宽度”举例讲解,“最小期望高度”自行测试。

 

“最小期望宽度(写)”帮助文档:

顾名思义,设置当前组件的最小期望宽度。

在官方文档中,对此“宽度数值”并无太多的解释,也没有具体的应用场景说明。

经过实测,本方法类似于给组件设置宽度值,但是并不能真正设置有效的宽度值。

如果在本属性之前执行过“置需求宽度”方法,那么本属性将无法设置组件宽度。

 

“最小期望宽度(读)”帮助文档:

顾名思义,返回当前的最小期望宽度。

 

代码编写如下图:

“按钮1”被点击后调用写属性设置宽度为100。

随后将设置的“最小期望宽度”弹出。

“按钮2”被点击后,执行“置需求宽度”方法,参数值填写50.

 

运行效果如下图(GIF):

最终可以看到“按钮1”被点击后,“文本框1”的宽度被正常改变。

点击“按钮2”后,再去重新点击“按钮1”会发现“最小期望宽度”无法进行设置。

但是“最小期望宽度”的属性值可以正常读取。

 

 

● 锚点垂直/水平位置(读写)

 

此处以“锚点垂直位置”举例讲解,“锚点水平位置”自行测试。

 

“锚点垂直位置(写)”帮助文档:

顾名思义,设置当前组件的垂直锚点位置,如果不设置默认为组件中心位置。

属性值为小数,单位像素。

如果调用本属性后,再调用“旋转角度”方法时,旋转后的位置会发生改变。

 

“锚点垂直位置(读)”帮助文档:

顾名思义,读取当前设置的锚点垂直位置。

 

代码编写如下图:

“按钮1”被点击后,设置本属性为100,随后调用旋转角度为90。

最后用提示框方法,将“锚点垂直位置”弹出。

“按钮2”被点击后,直接执行“旋转角度”属性。

 

运行效果如下图(GIF):

可以看到“按钮2”被点击后,组件会基于原位置旋转。

“按钮1”被点击后,组件的位置会发生偏移。

 

 

四、其它读写方法

 

 

● 本分类说明

 

本类中的所有读写属性,并没有同名的相反属性。

例如:“位置矩阵(读)”并没有同名的写属性。

 

 

● 位置矩阵(读)

 

帮助文档如下图:

顾名思义,通过本读属性可以得出当前组件的“矩阵类”对象,进行矩阵操作。

关于矩阵类的操作可看“高级画板->矩阵类”,此处不再详细介绍。

 

 

● 属性动画播放器(读)

 

帮助文档如下图:

通过本读属性可以获得当前组件的“组件属性动画播放器”

通过本类可设置当前组件的动画效果。

 

代码编写如下图:

“按钮1”被点击后,直接在本属性后调用“动画周期”写属性,可以用来设置当前动画播放周期。

调用“水平位置”方法,可以让当前组件实现平移动画。

参数内填写“文本框1.取宽度()”,代表平移距离为当前组件的宽度。

 

运行效果如下图(GIF):

最后可以看到“按钮1”被点击后,“文本框1”进行了平移。

在当前类中,除了平移外,还有很多很多动画播放效果,大家可自行查看。

或者可参考“火山自带例子”,该例子位于,火山安装目录内的“samples\samples.vsln”

打开例子后找到“窗口及组件”就可以找到“组件属性动画”项目,继续打开“main.v”就可以看到本例子。

  

 

 

● 所处窗口是否可视(读)

 

帮助文档如下图:

顾名思义,就是用来判断当前窗口是否处于可见状态。

返回“真”表示可视,否则返回“假”

 

代码编写如下图:

直接调用本属性判断返回值即可。

 

运行结果如下图:

界面被显示的状态下,点击“按钮1”必定弹出提示“可视”

 

 

● 是否为触摸模式(读)

 

帮助文档如下图:

顾名思义,就是判断当前组件是否处于触摸模式下。

通常情况下,只要界面处于显示状态,那么本属性必定返回真。

注意:并不代表当前组件开启触摸。

 

代码编写如下图:

直接通过“如果”判断本属性的返回值,然后弹出对应提示即可。

 

运行效果如下图:

可以看到“按钮1”被点击后弹出了“当前已经进入触摸交互模式”

 

 

● 支持触摸(写)
● 被触摸(事件)

 

“支持触摸(写)”帮助文档:

顾名思义,使用本属性可以让当前组件支持触摸操作。

本属性值默认不开启,开启后会发送“被触摸”事件。

 

“被触摸(事件)”帮助文档:

“支持触摸”属性设置为“真”后,将会发送本事件。

 

代码编写如下图:

“按钮1”被点击下调用“支持触摸”,属性值设置为真。

添加“窗口组件_被触摸”事件,指定来源对象后,判断“触摸动作.动作”是否为“动作类型.按下”

如果是“按下”动作,则取出“横纵坐标”显示在文本框中。

 

运行效果如下图(GIF):

可以看到最开始点击“文本框1”并没有任何效果,证明触摸默认是关闭状态。

点击“按钮1”后再去点击“文本框1”会立刻取出坐标。

 

 

● 文本基线(读)

 

帮助文档如下图:

读取当前组件的文本基线,如果当前组件不支持文本基线,则返回“-1”

 

“文本基线”演示

 

代码编写如下图:

直接读取“文本基线”,赋值给文本框1显示。

 

运行结果如下图:

点击“按钮1”后会成功在文本框显示文本基线。

 

● 支持指针经过监听(写)
● 指针经过(事件)

 

“支持指针经过监听(写)”帮助文档:

顾名思义,通过本属性可以设置当前组件支持鼠标经过监听。

属性值为真表示监听,否则相反。

本属性设置为真后,会发送“指针经过”事件。

 

“指针经过(事件)”帮助文档:

本事件必须将“支持指针经过监听”设置为真才有效。

 

代码编写如下图:

“按钮1”被单击下,设置本属性为真。

添加“窗口组件_指针经过”事件,判断来源对象后,继续判断动作类型。

如果等于“经过”则修改文本框的内容。

备注:可能因模拟器并不能监听电脑鼠标指针的缘故,本事件在模拟器内运行无效。

建议在真机测试本事件,可以外接一个蓝牙鼠标做测试。

 

● 支持按键监听(写)
● 按键输入(事件)

 

“支持按键监听(写)”帮助文档:

顾名思义,通过本属性可设置当前按键监听。

属性值为真表示监听,否则相反。

但是:本属性通常用于“编辑框”等带有输入焦点的组件。

 

“按键输入(事件)”帮助文档:

本事件必须将“支持按键监听”设置为真才会发送本事件。

本事件的代码编写可参考“窗口操作->通知_按键事件”

“文本框”调用无效,因此不再详细讲解。

 

 

● 支持窗口挂接监听(写)
● 挂接到窗口(事件)

 

“支持窗口挂接监听(写)”帮助文档:

顾名思义,通过本属性可以监听当前组件是否挂接到窗口操作。

并且会发送“挂接到窗口”事件。

 

“挂接到窗口(事件)”帮助文档:

本事件必须将“支持窗口挂接监听”设置为真才会发送本事件。

参数返回“真”表示挂接到窗口,否则相反。

 

代码编写如下图:

“按钮1”被点击时设置监听。

“按钮2”被点击后,调用“取窗口容器组件().删除子组件()”方法,去删除“文本框1”

添加“窗口组件_挂接到窗口”事件,判断来源对象后,继续判断“是否挂接”参数是否为“真”

最后弹出对应提示即可。

 

运行结果如下图(GIF):

点击“按钮1”后去点击“按钮2”删除组件,就会弹出提示“没有挂接”

“挂接”提示可以通过“取窗口容器组件 ().添加子组件 ()”来触发。

 

 

● 背景图(写)
● 背景色(写)

 

“背景图(写)”帮助文档:

顾名思义,设置当前组件的背景图。

本属性和“置背景图”方法不同之处在于,本属性参数值是“可绘制资源”类型。

注意:本属性会覆盖其它方式设置的背景。

 

“背景色(写)”帮助文档:

顾名思义,本属性就是用来设置当前组件的背景颜色。

本属性同样会覆盖其它方式设置的背景。

可以调用“颜色类”中定义的常量值。

 

代码编写如下图:

“按钮1”被点击后,定义“可绘制资源”变量,导入一张图片当做背景。

然后直接调用本属性,设置“图片”变量为背景图即可。

“按钮2”被点击后,设置“背景色”“颜色类.红色”

 

运行结果如下图:

可以看到“背景图”“背景色”会相互覆盖。

 

 

● 边框背景(写)

 

帮助文档如下图:

顾名思义,本属性就是用来设置边框背景。

本属性和“置边框背景”方法不同之处在于,本属性只能设置边框。

本属性同样会覆盖其它方式设置的背景,直接通过“常用边框类型.XXX”就可以设置。

 

代码编写如下图:

直接给当前属性赋值“常用边框类型.圆角矩形”就可以设置当前组件为“圆角矩形”样式。

 

运行结果如下图:

“按钮1”被点击后,可以看到当前组件变成了圆角矩形。

 

 

● 左边(读)
● 右边(读)
● 顶边(读)
● 底边(读)

 

帮助说明:

以上四个读属性就是字面上的意思,返回值为“整数”

此处不在展示帮助文档,大家可自行查看。

 

代码编写如下图:

分别读取四个读属性,显示在文本框中。

 

运行结果如下图:

点击“按钮1”后将会成功读取当前文本框中。

 

 

五、事件定义方法

 

● 本分类说明

 

帮助说明:

本分类中,记录了“窗口组件”中所有的事件方法。

分别如下(点击跳转):

  1. 1.弹出菜单项被选择
  2. 2.挂接到窗口
  3. 3.指针经过
  4. 4.按键输入
  5. 5.被单击
  6. 6.被触摸
  7. 7.被长按

 

六、成员变量

 

● 本分类说明

 

帮助说明:

本分类中,记录了“窗口组件”中的常量值。

 

 

● 填满父组件
● 等于内容尺寸

 

以上两种常量值,均是字面上的意思,此处不再截图帮助文档。

共有两种使用方式。

 

第一种使用方式:

选择要修改的组件,在右侧属性栏找到“组件宽度/高度类型”

 

第二种使用方式:

直接通过“窗口组件”调用本常量值即可。

 

运行效果如下图(GIF):

如果此时在“文本框1”内存入大量的内容,那么“文本框1”的高度则会自动匹配内容的高度。

 

 

七、标记类

 

● 本类说明

 

帮助说明:

本类中只有一个成员变量,提供了一种标记说明,类似于“内容描述”

 

●标记

 

代码编写如下图:

“按钮1”被点击后,设置一个标记。

点击“按钮2”读取当前设置的标记到文本框显示。

 

运行结果如下图(GIF):

最终成功读取。