使用AutoJs编写UI的踩坑记录

相对于脚本而言,一般不写UI最好.但有时候要确认用户的选择和输入,不得不使用UI或者悬浮窗...
但两者的功能和实现方法 是一样的.

针对于初次编写UI界面的同学来说,可能会遇到各种各样的坑.

但是针对于写UI而遇到的各种问题,希望看此篇帖子的同学:
第一: 不要问我任何关于代码的问题,因为我没有时间帮你写代码;
第二: 如果我不会,你要我帮你解决...那我也得去百度google找资料,研究明白,再告诉你,这与你自己去找资料然后自己研究而言,除了浪费了我的时间,没有任何的实际帮助.

坑1:
不管你的代码多么少, "ui"; 这个字符串,必须放在第一行,在它之上,不能有任何的代码和注释

坑2:
整个UI编写过程中,有一个非常重要的原则:
  UI线程中除函数和公用变量外不要写任何流程性质的代码,如果要写流程,必须使用线程

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 会变形

----------------------------------------

转载 from https://www.autojs.org/


__EOF__

本文作者忧伤恋上了快乐
本文链接https://www.cnblogs.com/x666-6/p/15006044.html
关于博主:编程小萌新一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   忧伤恋上了快乐  阅读(5312)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示