相對於腳本而言,一般不寫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/