其他
# ui
# ui.layout(xml)
# ui.inflate(xml[, parent])
# ui.findView(id)
# ui.finish()
# ui.setContentView(view)
# ui.run(callback)
# ui.post(callback[, daley])
# ui.statusBarColor(color)
# ui.showPopupMenu(view, menu)
# 尺寸的单位: Dimension
# Drawables
# 颜色
(完善中...)
> 以下非官方资料
## 使用AutoJs编写UI的踩坑记录
相对于脚本而言,一般不写UI最好.但有时候要确认用户的选择和输入,不得不使用UI或者悬浮窗...
但两者的功能和实现方法 是一样的.
针对于初次编写UI界面的同学来说,可能会遇到各种各样的坑.
#### 坑1:
不管你的代码多么少, "ui"; 这个字符串,必须放在第一行,在它之上,不能有任何的代码和注释
#### 坑2:
整个UI编写过程中,有一个非常重要的原则:
UI线程中除函数和公用变量外不要写任何流程性质的代码,如果要写流程,必须使用线程
```js
threads.start(function() { //这里写你的流程代码 });
```
#### 坑3:
使用线程时,如果要对UI中的数据进行修改,最好使用下面的方法来执行:
```
threads.start(function() { //流程代码 ui.run(()=>{ //这里写针对UI的操作 }); });
```
#### 坑4:
为了方便管理,所有开的线程,根据不同功能,最好都定义各个线程的变量名
```
var Thread = threads.start(function() {});
```
#### 坑5:
线程函数,不能简写 观察上面的代码,你会发现:
ui.run()中 我的写法是:
```
ui.run(()=>{});
```
而在线程 threads.start();中,我的写法是:
```
threads.start(function() {});
```
#### 坑6:
使用setVisibility()方法时,一定要 importClass(android.view.View);
括号中的属性包括:
- View.GONE //完全隐藏控件
- View.INVISIBLE //隐藏控件,但保留控件的位置
- View.VISIBLE //默认属性, 显示控件
#### 坑7: 针对text控件的对齐 gravity 要在 linear 布局中进行设置,例如
```
<linear gravity="right|center" w="80" h="*"> <text text="当前速度: " textColor="#FFFFFF" textSize="16sp" /> </linear>
```
#### 坑8:
不同机型,不同DPI适配 在线性布局中 务必灵活运用 layout_weight,否则,分辨率改变 DPI改变后,你的UI 会变形
# 常见问题
## ui组件上面的属性能设置变量吗?
可以。参考下列代码:
```js
//此代码由飞云脚本圈原创(www.feiyunjs.com)
// 唯一的全局变量MYAPP
"ui";
var myAPP = {};
myAPP.title = "某音关注私信"; //脚本名称
myAPP.programVersion = "v20190610"; //版本号
myAPP.identifier = ""; //程序编号
myAPP.packageName = "com.ss.android.ugc.aweme"; //包名
myAPP.interface = "我的/TA的粉丝列表"; //起始界面
myAPP.appVersion = "6.6.0" //APP版本
myAPP.fitRatio = "全分辨率" //适配的分辨率
myAPP.fitDevice = "真机、模拟器" //适配的设备
ui.layout(
<drawer id="drawer">
<vertical>
<appbar background="{{myAPP.color}}">
<toolbar id="toolbar" title="{{myAPP.identifier + myAPP.title}}" />
<tabs id="tabs" />
</appbar>
<viewpager id="viewpager">
<frame>
<ScrollView>
<vertical marginTop="10">
<card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical">
<vertical padding="18 8" h="auto">
<text margin="0 5" text="程序版本:{{myAPP.programVersion}}" textColor="black" w="auto" />
<text margin="0 5" text="程序编号:{{myAPP.identifier}}" textColor="black" w="auto" />
<text margin="0 5" text="适配APP版本:{{myAPP.appVersion}}" textColor="black" w="auto" />
<text margin="0 5" text="适配分辨率:{{myAPP.fitRatio}}" textColor="black" w="auto" />
<text margin="0 5" text="APP起始界面:{{myAPP.interface}}" textColor="black" w="auto" />
<text margin="0 5" text="适配设备:{{myAPP.fitDevice}}" textColor="black" w="auto" />
</vertical>
<View bg="#00ABA9" h="*" w="5" />
</card>
</vertical>
</ScrollView>
</frame>
</viewpager>
</vertical>
</drawer>
);
```