Picker.md

June 29, 2020 · View on GitHub

Picker (3.4.5+)

  • picker是在3.4.5版本后增加的一个新功能,即加强版的switch
  • pickerswitch一样,通过get读取当前状态,通过set保存状态
  • 其它配置项也和switch一致
  • picker需要你自己定义选项(option),就像这样

属性

  • 公共属性(Action、Switch、Picker共有)
属性作用有效值示例
id如果允许长按添加到桌面快捷,必需设置ID当前配置文件中必需唯一a0001
desc显示在标题下的小字,可以不设置文本内容这是描述
desc-sh动态设置desc内容的脚本脚本代码echo '自定义的说明信息'
summary高亮显示的摘要信息文本内容这是摘要
summary-sh动态设置summary内容的脚本脚本代码echo '自定义的摘要信息'
confirm点击时是否弹出确认框,默认falsetruefalsefalse
visible自定义脚本,输出1或0,决定该功能项是否显示脚本代码echo '1'
interruptible是否允许中断执行,默认truetruefalsefalse
auto-off执行完脚本后是否自动关闭日志界面,默认falsetruefalsefalse
auto-finish是否在关闭日志界面后关闭当前页面truefalsefalse
logo作为快捷方式添加到桌面时使用的图标文件路径
icon显示在功能左侧的图标。如果未设置logo属性,它也同时会被作为logo使用文件路径
reload执行完脚本后要执行的刷新操作page 、具体体功能idpage
bg-task后台运行而不是显示日志输出界面,默认falsetrue falsetrue
  • 特有属性
属性作用有效值示例
multiple是否允许多选(设置了options或type=app时可用)true falsetrue
separator多选模式下多个值的分隔符,默认为换行符任意字符,

id 属性建议配合 auto-offauto-finishlogo 使用

logoicon除了支持assets文件路径,也支持磁盘文件路径

<picker>
    <title>单选列表</title>
    <desc>测试单选列表</desc>
    <options>
        <option value="a1">选项1</option>
        <option value="a2">选项1</option>
    </options>
    <get>getprop xxx.xxx.xxx</get>
    <set>setprop xxx.xxx.xxx $state</set>
</picker>
  • 动态选项
  • picker也允许使用options-sh属性来设置输出下拉选项的脚本
  • 用法和action的param一样,如:
<picker options-sh="echo 'a|选项A'; echo 'b|选项B'">
    <title>测试单选界面</title>
    <desc>测试单选界面</desc>
    <get>getprop xxx.xxx.xxx3</get>
    <set>setprop xxx.xxx.xxx3 "$state"</set>
</picker>
  • 多选模式

  • 在picker节点上增加multiple="true"属性来标识允许多选

  • 例如:

    <picker options-sh="echo 'a|选项A'; echo 'b|选项B'" value-sh="echo 'a'; echo 'b';">
        <title>测试单选界面</title>
        <get>getprop xxx.xxx.xxx4</get>
        <set>setprop xxx.xxx.xxx4 "$state"</set>
    </picker>
    
  • 默认设置下,多选列表的各个值用换行分隔,得到的参数可能是这样的

    value="
    wifi
    airplane
    "
    
  • 可有时候,你希望得到的值是 value="wifi,airplane" 这样的?

  • 其实你可以通过separator属性自定义分隔符,例如:

    <picker multiple="multiple" separator=",">
        <title>隐藏状态栏图标</title>
        <desc>设置隐藏的状态栏图标</desc>
        <options>
            <option value="mobile">手机信号</option>
            <option value="wifi">WIFI</option>
            <option value="airplane">飞行模式</option>
        </options>
        <get>
            settings get secure icon_blacklist
        </get>
        <set>
            settings put secure icon_blacklist "$state"
        </set>
    </picker>
    


相关说明

  • 由于在xml中写大量的shell代码非常不方便,也不美观,
  • 建议参考 脚本使用 中的说明,
  • 将段落较长的脚本代码,写在单独的文件中。