控件父类-XView
- 更新时间:2026-03-06 16:02:26
控件父类-XView
在应用中所有的控件或者布局都是这个类{XView}的子类,因此,这个类中的所有方法,所有的子类都能调用,故称为:公共方法。
在代码示例中,多数情况下,我都是使用{XButton}按钮控件来进行演示的,其实任何控件都可以。
getView()
获得安卓原生视图
我们可以通过控件的getView()方法获得原生控件,从而进行原生操作
对于[button]标签,对应的原生类就是[MaterialButton]
对于[text]标签,对应的原生类就是[MaterialTextView]
其余的请参考原生对照表
特殊示例这里的 getView 是所有组件都有的一个方法(因为所有组件都继承XView类,换句话说:所有组件都是XView类型的),在代码中的体现就是 ui.id("任何").getView() 都能拿到原生视图,
需要注意:在本应用中有很多组件都是组合组件,例如:input(输入框)组件,其实是由{TextInputLayout}包裹了一个{TextInputEditText}
我们需要注意:getView 是返回最大的组件视图,像上面所说的input(输入框)组件,返回的就是{TextInputLayout}类,如果我们想要获取{TextInputEditText}则需要参考input(输入框)的文档:通过getEditText方法获取{TextInputEditText}对象(参考input文档)。
- 返回 : {View} 安卓原生View
getName()
获取组件的节点名称
- 返回 : {String} 组件节点名称
- 版本 : 1.5.5
parseColor(color)
解析颜色
可以通过这个函数获得主题颜色值或者一些常用颜色值
- 参数 : color {String} 颜色名称
- 返回 : {int} 颜色值
dp(dp)
将dp转换成对用的px
- 参数 : dp {float} dp长度
- 返回 : {float} px长度
bgImg(path)
设置背景图片
- 参数 : path {String} 图片路径
snack(msg)
显示 Snackbar
- 参数 : msg {String} 信息
snack(msg, title, callback)
显示 Snackbar
- 参数 : msg {String} 信息
- 参数 : title {String} action标题
- 参数 : callback {(view)=>{}} 点击事件回调
click(callback)
设置点击事件
- 参数 : callback {(view)=>{}} 点击事件
longClick(callback)
设置长按事件
- 参数 : callback {(view)=>{}} 点击事件
popup(titles, callback)
显示选项菜单
- 参数 : titles {String[]} 选项
- 参数 : callback {(title)=>{}} 回调
popup(titles, gravity, callback)
显示选项菜单
- 参数 : titles {String[]} 选项
- 参数 : gravity {String} 重力,例如:"center|start"(默认值)
- 参数 : callback {(title)=>{}} 回调
setEnabled(enabled)
是否启用控件
- 参数 : enabled {boolean} true:启用,false:禁用
isEnabled()
判断可用
- 返回 : {boolean} true:启用,false:禁用
setVisibility(visibility)
设置可见性
- 参数 : visibility (使用$ui中的常量,例如:ui.INVISIBLE)
isVisibility()
获得可见性
- 返回 : {int} (使用$ui中的常量,例如:ui.INVISIBLE)
setFocusable(focusable)
设置可聚焦
- 参数 : focusable {boolean} true:控件可获得焦点,false:控件不可获得焦点
setClickable(clickable)
设置可点击
- 参数 : clickable {boolean} true:控件可被点击,false:控件不可被点击
setAlpha(alpha)
设置透明度
- 参数 : alpha {float} 0.5:控件半透明,1:控件不透明
getAlpha()
获得透明度
- 返回 : {float} 控件透明度值
setElevation(elevation)
设置立体值
可以让控件看起来更加立体
- 参数 : elevation {int} 立体值
getX()
获取x值 获取相对于父控件的x值
- 返回 : {float} x值
setX(x)
设置x值 设置在父控件中x的值
- 参数 : x {float} x值
getY()
获取y值 获取相对于父控件的x值
- 返回 : {float} y值
setY(y)
设置y值 设置在父控件中y的值
- 参数 : y {float} y值
getW()
获得控件宽度
- 返回 : {float} 宽度
getH()
获得控件高度
- 返回 : {float} 高度
onTouch(callback)
获得控件高度
- 参数 : callback {(motionEvent,view)=>{return false;}} 触摸回调