ui布局示例代码
###### 抽屉布局示例代码
```
var color = "#009688";
ui.layout(
<drawer id="drawer">
<vertical>
<appbar>
<toolbar id="toolbar" title="金猪v1.0"/>
<tabs id="tabs"/>
</appbar>
<viewpager id="viewpager">
<frame>
<text text="第一页内容" textColor="black" textSize="16sp"/>
</frame>
<frame>
<text text="第二页内容" textColor="red" textSize="16sp"/>
</frame>
<frame>
<text text="第三页内容" textColor="green" textSize="16sp"/>
</frame>
</viewpager>
</vertical>
<vertical layout_gravity="left" bg="#ffffff" w="280">
<img w="280" h="200" scaleType="fitXY" src="http://images.shejidaren.com/wp-content/uploads/2014/10/023746fki.jpg"/>
<list id="menu">
<horizontal bg="?selectableItemBackground" w="*">
<img w="50" h="50" padding="16" src="{{this.icon}}" tint="{{color}}"/>
<text textColor="black" textSize="15sp" text="{{this.title}}" layout_gravity="center"/>
</horizontal>
</list>
</vertical>
</drawer>
);
//创建选项菜单(右上角)
ui.emitter.on("create_options_menu", menu=>{
menu.add("设置");
menu.add("关于");
});
//监听选项菜单点击
ui.emitter.on("options_item_selected", (e, item)=>{
switch(item.getTitle()){
case "设置":
toast("还没有设置");
break;
case "关于":
alert("关于", "Auto.js界面模板 v1.0.0");
break;
}
e.consumed = true;
});
activity.setSupportActionBar(ui.toolbar);
//设置滑动页面的标题
ui.viewpager.setTitles(["标签一", "标签二", "标签三"]);
//让滑动页面和标签栏联动
ui.tabs.setupWithViewPager(ui.viewpager);
//让工具栏左上角可以打开侧拉菜单
ui.toolbar.setupWithDrawer(ui.drawer);
ui.menu.setDataSource([
{
title: "选项一",
icon: "@drawable/ic_android_black_48dp"
},
{
title: "选项二",
icon: "@drawable/ic_settings_black_48dp"
},
{
title: "选项三",
icon: "@drawable/ic_favorite_black_48dp"
},
{
title: "退出",
icon: "@drawable/ic_exit_to_app_black_48dp"
}
]);
ui.menu.on("item_click", item => {
switch(item.title){
case "退出":
ui.finish();
break;
}
})
```
###### 下拉菜单选项
```
ui.layout(
<vertical >
<text id="xiala" text="今天的星期是?" textSize="18sp" textStyle
="bold" />
<spinner id="xuanxiang" entries="星期一|星期二|星期三|星期四|星期五|星期六|星期天" w="auto" />
<button id="queDing" style="Widget.AppCompat.Button.Colored" text="设置" />
</vertical >
)
ui.queDing.on("click", () => {
ui.xuanxiang.setSelection(1)
toastLog("设置成功");
})
// ui.queDing.on("click", () => {
// let 选项 = (ui.xuanxiang.getSelectedItemPosition()).toString()
// switch (选项) {
// case "0":
// toastLog("星期一")
// break;
// case "1":
// toastLog("星期二")
// break;
// case "2":
// toastLog("星期三")
// break;
// case "3":
// toastLog("星期四")
// break;
// case "4":
// toastLog("星期五")
// break;
// case "5":
// toastLog("星期六")
// break;
// case "6":
// toastLog("星期天")
// break;
// }
// })
```
###### 无障碍开关开启
```
ui.layout(
<vertical >
<Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" />
</vertical>
)
ui.autoService.on("check", function (checked) {
if (checked && auto.service == null) {
app.startActivity({
action: "android.settings.ACCESSIBILITY_SETTINGS"
});
}
if (!checked && auto.service != null) {
auto.service.disableSelf();
}
})
// 当用户回到本界面时,resume事件会被触发
ui.emitter.on("resume", function () {
// 此时根据无障碍服务的开启情况,同步开关的状态
ui.autoService.checked = auto.service != null;
});
```
###### 勾选框指定选择框
```
ui.layout(
<vertical >
<text id="baidu" text="百度网站是:www.baidu.com" autoLink="all" />
<horizontal>
<button id="queDing" style="Widget.AppCompat.Button.Colored" text="确定" w="auto" />
<button id="quXiao" style="Widget.AppCompat.Button.Colored" text="取消" w="auto" />
</horizontal>
<horizontal>
<checkbox id="fxk1" text="选择框1" checked="false" />
<checkbox id="fxk2" text="选择框2" />
</horizontal>
<horizontal>
<vertical >
<radio id="dxk" text="单选框" />
<radio id="dxk1" text="单选框1" />
<radio id="dxk2" text="单选框2" />
<radio id="dxk3" text="单选框3" />
</vertical>
</horizontal>
</vertical>
)
ui.queDing.on("click", () => {
// log(ui.baidu.getText())
// ui.baidu.setText("我被改变了")
if(ui.dxk.isChecked()){
toastLog("我被选中了")
}
})
ui.fxk1.on("check", () => {
if (ui.fxk1.isChecked()) {
ui.fxk2.setChecked(false)
ui.dxk.setChecked(true)
ui.dxk1.setChecked(false)
ui.dxk2.setChecked(true)
ui.dxk3.setChecked(false)
} else {
ui.dxk.setChecked(false)
ui.dxk2.setChecked(false)
ui.dxk3.setChecked(false)
}
})
ui.fxk2.on("check", () => {
if (ui.fxk2.isChecked()) {
ui.fxk1.setChecked(false)
ui.dxk.setChecked(false)
ui.dxk1.setChecked(true)
ui.dxk2.setChecked(false)
ui.dxk3.setChecked(true)
} else {
ui.dxk1.setChecked(false)
ui.dxk3.setChecked(false)
}
})
```
###### 文本控件书写方式
```
ui.layout(
<vertical bg="?attr/selectableItemBackground" clickable="true">//波纹效果
{/* 第一种书写方式 */}
<text id="diyige">我是文本1</text>
{/* 第二种书写方式 */}
<text id="dierge" text="我是文本2" />
</vertical>
)
```
###### 本地储存保存界面配置
```
ui.layout(
<vertical gravity="center">
<text text="这是输入框" />
<input id="i1" />
<text text="这是单选框" />
<radiogroup>
<radio id="r1" />
<radio id="r2" />
<radio id="r3" />
<radio id="r4" />
</radiogroup>
<text text="这是选择框" />
<checkbox id="c1" />
<button id="b1" text="保存设置" />
<button id="b2" text="恢复默认" />
</vertical>
)
// 创建本地存储
var 本地存储 = storages.create("道无涯")
// 输入值的读取与设置
var 输入值 = 本地存储.get("i1")
if (输入值) {
ui.i1.setText(输入值)
}
// 单选值的读取与设置
var 单选1值 = 本地存储.get("r1")
var 单选2值 = 本地存储.get("r2")
var 单选3值 = 本地存储.get("r3")
var 单选4值 = 本地存储.get("r4")
if (单选1值) {
ui.r1.setChecked(单选1值)
}
if (单选2值) {
ui.r2.setChecked(单选2值)
}
if (单选3值) {
ui.r3.setChecked(单选3值)
}
if (单选4值) {123
ui.r4.setChecked(单选4值)
}
// 选择值的读取与设置
var 选择值 = 本地存储.get("c1")
if (选择值) {
ui.c1.setChecked(选择值)
}
ui.b1.click(function () {
// 输入值的存储
var 输入值 = ui.i1.text();
本地存储.put("i1", 输入值)
// 单选值的存储
var 单选1值 = ui.r1.isChecked();
var 单选2值 = ui.r2.isChecked();
var 单选3值 = ui.r3.isChecked();
var 单选4值 = ui.r4.isChecked();
本地存储.put("r1", 单选1值)
本地存储.put("r2", 单选2值)
本地存储.put("r3", 单选3值)
本地存储.put("r4", 单选4值)
// 选择值的存储
var 选择值 = ui.c1.isChecked();
本地存储.put("c1", 选择值)
toastLog("已保存界面配置,开始运行脚本")
})
ui.b2.click(function () {
恢复默认数据()
})
function 恢复默认数据(){
本地存储.clear()
toastLog("已恢复默认数据,请退出再重进")
}
```
### 本地储存保存界面配置2
```
ui.layout(
<vertical >
<appbar>
<toolbar title="金猪v.1.0" />
<tabs id="tabs" />
</appbar>
<text text="标题" />
<input id="input1" w="*" granity="center" />
<button id="str" text="开始运行了" />
</vertical >
)
let 本地储存 = storages.create("123456789")
let 内容 = 本地储存.get("input1")
if (内容) {
ui.input1.setText(内容)
}
ui.str.click(function () {
let 内容 = ui.input1.text()
本地储存.put("input1", 内容)
threads.start(主线程)
})
function 主线程() {
toastLog("程序运行了")
}
```
### 模拟浏览
```
"ui";
ui.layout(
<vertical>
<appbar>
<toolbar id="toolbar" title="模拟浏览" bg="#696969" />
</appbar>
<card cardCornerRadius="10" margin="10 10 10 10" >
<vertical>
<horizontal>
<text text="进入刷PV几率:" textSize="12sp" textStyle="bold" />
<input text="99" w="200" textSize="13sp" />
<text>%</text>
</horizontal>
<horizontal>
<text text="刷新PV次数:" textSize="12sp" textStyle="bold" />
<input text="4" w="100" textSize="12sp" />
<text text="到" textSize="12sp" />
<input text="6" w="100" textSize="12sp" />
<text text="次" />
</horizontal>
<horizontal>
<text text="单次PV滑动:" textSize="12sp" textStyle="bold" />
<input text="10" w="100" textSize="12sp" />
<text text="到" textSize="12sp" textStyle="bold" />
<input text="17" w="100" textSize="12sp" />
<text text="次" textSize="12sp" textStyle="bold" />
</horizontal>
<horizontal>
<text text="页面加载时间:" textSize="12sp" textStyle="bold" />
<input text="10" w="205" textSize="12sp" />
<text text="秒" textSize="12sp" textStyle="bold" />
</horizontal>
</vertical>
</card>
<card cardCornerRadius="10" margin="10 10 10 10" textSize="12sp">
<vertical>
<horizontal>
<text text="IP软件包名:" textSize="12sp" textStyle="bold" />
<input text="com." w="210" textSize="12sp" />
</horizontal>
<horizontal>
<text text="IP链接:" textSize="12sp" textStyle="bold" />
<input text="" w="240" textSize="12sp" />
</horizontal>
<horizontal>
<text text="广告点击深度:" textSize="12sp" textStyle="bold" />
<input text="7" w="200" textSize="12sp" />
<text text="次" textSize="12sp" textStyle="bold" />
</horizontal>
<horizontal>
<text text="点击百分比数:" textSize="12sp" textStyle="bold" />
<input text="60" w="200" textSize="12sp" />
<text text="%" textSize="12sp" textStyle="bold" />
</horizontal>
<horizontal>
<text text="指纹最大范围:" textSize="12sp" textStyle="bold" />
<input text="20000" w="200" textSize="12sp" />
<text text="个" textSize="12sp" />
</horizontal>
<horizontal>
<text text="点击页面等待时间:" textSize="12sp" textStyle="bold" />
<input text="8" w="80" textSize="12sp" />
<text text="到:" textSize="12sp" textStyle="bold" />
<input text="12" w="80" textSize="12sp" />
<text text="秒" textSize="12sp" textStyle="bold" />
</horizontal>
<horizontal>
<checkbox id="" text="开启测试模式" textSize="11sp" />
<Switch id="悬浮窗权限" text=" 打开悬浮窗" checked="{{(new android.provider.Settings).canDrawOverlays(context) != false}}" gravity="center" textSize="11sp" />
<Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" gravity="center" textSize="11sp" />
</horizontal>
<horizontal >
<button style="Widget.AppCompat.Button.Colored" text="退出程序" w="auto" h="auto" id="退出程序" marginLeft="40" />
<button style="Widget.AppCompat.Button.Colored" text="运行程序" w="auto" h="auto" id="运行程序" marginLeft="80" />
</horizontal>
</vertical>
</card>
</vertical >
);
activity.setSupportActionBar(ui.toolbar);
ui.emitter.on("create_options_menu", menu => {
menu.add("日志");
});
ui.emitter.on("options_item_selected", (e, item) => {
switch (item.getTitle()) {
case "日志":
app.startActivity("console");
break;
}
e.consumed = true;
});
ui.悬浮窗权限.on("check", function () {
importClass(android.content.Intent);
importClass(android.net.Uri);
importClass(android.provider.Settings);
var intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + context.getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
app.startActivity(intent);
});
ui.autoService.on("check", function (checked) {
if (checked && auto.service == null) {
app.startActivity({
action: "android.settings.ACCESSIBILITY_SETTINGS"
});
}
if (!checked && auto.service != null) {
auto.service.disableSelf();
}
})
ui.emitter.on("resume", function () {
ui.autoService.checked = auto.service != null;
});
ui.运行程序.on("click", function () {
threads.start(function () {
toastLog("你点击了运行程序")
});
})
ui.退出程序.on("click", function () {
toastLog("你点击了退出程序")
exit()
})
```