• 使用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/

  • 相关阅读:
    一个Package Load Failed问题的解决方法

    .NET相关的最好东西--全球最新评价
    一年了...
    MSBuild 的简单入门
    开发基于.NET Compact Framework的程序时, 常遇到的问题(2) 为什么在Visual Studio 2003调试程序时不能通过ActiveSync连接PDA
    如何:显示用逗号分隔的项集合(摘自MSDN)
    每日一句(2008.10.8)
    每日一句(2008.10.16)
    男人这辈子
  • 原文地址:https://www.cnblogs.com/x666-6/p/15006044.html
Copyright © 2020-2023  润新知