封装的一个动态UI加载函数

[复制链接]
查看1914 | 回复3 | 2021-9-2 10:26:52 | 显示全部楼层 |阅读模式
本帖最后由 qiaohw04 于 2021-9-2 14:29 编辑
  1. local UIS = {
  2.         {
  3.             type="textview",
  4.         name="update",
  5.         val="",
  6.         textsize=10,
  7.         textcolor="#FF80FF00"
  8.     },
  9.     {
  10.             {
  11.                         type="textview",
  12.                         name="kamil",
  13.             val="卡密",
  14.                         textsize=10,
  15.         },
  16.         {
  17.             type="edittext",
  18.                         name="kami",
  19.             val="输入卡密",
  20.                         textsize=10,
  21.         },
  22.     },
  23. }
复制代码

如上是UI的数据,  然后自己写一个解析这些数据的函数:
  1. function loadUI(UI)
  2.             if UI.type=="edittext" then
  3.                 ui.addEditText("layout1",UI.name,UI.val)
  4.             ui.setTextSize(UI.name,UI.textsize)
  5.         elseif UI.type=="spinner" then
  6.                 ui.addSpinner("layout1",UI.name,UI.val,UI.sel)
  7.             ui.setTextSize(UI.name,UI.textsize)
  8.         elseif UI.type=="textview" then
  9.                 ui.addTextView("layout1",UI.name,UI.val)
  10.             ui.setTextSize(UI.name,UI.textsize)
  11.             if UI.textcolor then ui.setTextColor(UI.name,UI.textcolor) end
  12.             if UI.bg then ui.setBackground(UI.name,UI.bg) end
  13.         elseif UI.type=="line" then
  14.                 ui.addLine("layout1",UI.name,-1,2)
  15.             if UI.bg then ui.setBackground(UI.name,UI.bg) end
  16.         elseif UI.type=="checkbox" then
  17.                 ui.addCheckBox("layout1",UI.name,UI.text)
  18.             ui.setTextSize(UI.name,UI.textsize)
  19.             if UI.textcolor then ui.setTextColor(UI.name,UI.textcolor) end
  20.         end
  21.     end
复制代码
完整的使用方法如下:
  1. ui.newLayout("layout1")
  2. ui.setTitleText("layout1","测试UI")
  3. ui.setTitleBackground("layout1","#FF8B8174")
  4. for i=1,#UIS do
  5.     local UI = UIS[i]  
  6.     if UI.type then
  7.             loadUI(UI)
  8.     else
  9.         for j=1,#(UI) do
  10.             loadUI(UI[j])
  11.         end
  12.     end
  13.    
  14.     ui.newRow("layout1","row")
  15. end
复制代码

这样封装的一个好处也就是不需要写大量的UI方法, 但是UI得按指定的格式自己准备, 好像也是比较麻烦的. 有得必有失吧
回复

使用道具 举报

lrjl001 | 2021-9-3 14:10:27 | 显示全部楼层
回复

使用道具 举报

子轩 | 2021-9-14 06:54:26 | 显示全部楼层
签到签到
回复

使用道具 举报

lijun0223 | 2021-10-30 10:42:22 | 显示全部楼层
回帖水经验!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

4

主题

17

帖子

105

积分

注册会员

Rank: 2

积分
105