牙叔教程 简单易懂

使用场景

自定义下拉框spinner

效果展示

git动图较大, 稍等片刻, 马上就好

autojs版本

8.8.12-0

萌新三连问

  1. 我要改背景
  2. 我要改字体颜色
  3. 我改了下拉框数据, 怎么颜色又变回去啦

疑问解答

spinner布局有两种

  • 未展开之前的布局, 由getView生成
  • 展开之后的布局, 由getDropDownView生成

修改颜色和背景就和普通的UI修改一样

修改数据之后, 颜色又变回去了, 这是因为没有重新设置adapter

代码讲解

1. 导入类
importClass(android.graphics.drawable.Drawable);
importClass("android.graphics.Rect");
importClass("android.graphics.NinePatch");
importClass("android.graphics.drawable.NinePatchDrawable");
importClass("android.graphics.BitmapFactory");
importClass("android.graphics.Bitmap");
2. 布局
ui.layout(<vertical id="parent"><text id="adv" marginTop="20" w="*" gravity="center" textSize="30sp" textStyle="bold"></text><button id="btn" margin="20">切换选项</button><spinner id="spinner" margin="36" entries="男|女|未知" /></vertical>
);
3.点击按钮, 切换数据
ui.btn.click(function () {var mCountries = ["中国", "美国", "日本"];setAdapter(ui.spinner, mCountries);
});
4. 设置下拉框默认数据
let dataList = ["牙叔教程111", "牙叔教程222", "牙叔教程333"];
setAdapter(ui.spinner, dataList);
//设置下拉框默认的显示第一项
ui.spinner.setSelection(1);
5. 获取九图背景
let filePath = "./bili.9.png";
filePath = files.path(filePath);
let drawable = imageOperations(filePath);
function imageOperations(filePath) {let bitmap = BitmapFactory.decodeFile(filePath);let chunk = bitmap.getNinePatchChunk();let npd = new NinePatchDrawable(context.getResources(), bitmap, chunk, new Rect(), null);return npd;
}

SpinnerAdapter

getDropDownView 展开后的布局

getView 展开之前的布局

function getAdapter(dataList) {let adapter = JavaAdapter(android.widget.SpinnerAdapter, {getCount: function () {return dataList.length;},getItem: function (position) {return dataList[position];},getItemId: function (position) {return position;},getViewTypeCount: function () {return 1;},getItemViewType: function (pos) {return 0;},getDropDownView: function (position, convertView, parent) {if (!convertView) {let boxXml = (<frame><TextView id="_text" paddingTop="33dp" gravity="center" textColor="#f44336" textSize="20sp" /></frame>);convertView = ui.inflate(boxXml);convertView.attr("bg", "#00ff0000");convertView.getChildAt(0).setBackgroundDrawable(drawable);}let item = dataList[position];convertView.getChildAt(0).setText(item);return convertView;},getView: function (position, convertView, parent) {if (!convertView) {let boxXml = <text id="name" textColor="#4caf50" gravity="center" textSize="20sp"></text>;convertView = ui.inflate(boxXml);}let item = dataList[position];convertView.setText(item);return convertView;},});return adapter;
}

完整源码

公众号回复 自定义下拉框

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

bilibili

牙叔教程

微信公众号 牙叔教程

QQ群

747748653

autojs自定义下拉框相关推荐

  1. 【EasyUI篇】Combo自定义下拉框组件

    微信公众号:程序yuan 关注可了解更多的教程.问题或建议,请公众号留言; 查看--> 全套EasyUI示例目录 20.Combo自定义下拉框组件 这组件不可以通过class方式进行定义 JSP ...

  2. Combo( 自定义下拉框) 组件

    本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方法,这个组件依赖于 ValidateBox(验证框)组件 一. 加载方式 自定义下拉框不能通过标签的方式进行创建. <in ...

  3. uniapp 自定义下拉框

    uniapp 自定义下拉框 根据 https://gitee.com/kcren/uniapp-dropdown-filter/tree/master 自己加了一层封装 可以进行切换选择下拉内容 模板 ...

  4. 文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择

    转载自:文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择 一.需求 需要创建一个常见问题库,填写存在问题时可以下拉选择,可以模糊搜索,也可以手写.如果选择了问题库中的内容,自动填充内容到存在问 ...

  5. css自定义下拉框样式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. select美化自定义下拉框样式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. jquery美化select,自定义下拉框样式

    select默认的样式比较丑,有些应用需要美化select,在网上找到一个很好的美化样式效果,本人很喜欢,在这里分享一下. <!DOCTYPE html PUBLIC "-//W3C/ ...

  8. div自定义下拉框组件

    因为原生的下拉框不能修改其属性,很难美化下拉框. 所以自己用div简单自定义了一下下拉框,想美化直接修改css即可 <!DOCTYPE html> <html lang=" ...

  9. winform 下拉框(自定义下拉框控件)

    项目中遇到需要下拉框列表内容为线类型或点类型图形的需求,想到可以使用手绘线条和图形的方式来实现下拉列表内容自定义,记录下来供大家参考学习之用. 在项目中添加一个组件 添加完之后会显示如下设计界面 这里 ...

最新文章

  1. The number of object passed must be even but was [1]
  2. 为什么需要StringBuffer
  3. python扩展文件_1. 使用 C 或 C++ 扩展 Python
  4. 【数据结构与算法】单链表的Java实现
  5. 最新口绑查询HTML源码
  6. linux文件压缩包,linux目录文件压缩包操作
  7. 查询结果做缓存的例子
  8. 【搜狗拼音输入法 3.2 论坛版】
  9. python2.7安装教程win7_win7下python2.7安装 pip,setuptools的正确方法
  10. EDA技术实用教程 | 复习七 | 异步清零和同步清零的时序设计
  11. 凸多边形、凹多边形、凸包算法
  12. 用虚数i与欧拉公式来解释分数阶微积分
  13. linux卸载小企鹅输入法,Linux(FC)小企鹅输入法的安装
  14. 代码揭秘:从c/c++的角度探秘计算机系统,【C++】[代码揭秘:从C/C的角度探秘计算机系统]左飞.pdf...
  15. WMware虚拟化IntelVT-x/EPT或AMD-V/RVI(V)不能启用,导致AVD不能启动
  16. 1011 A+B 和 C (15分)(输出格式 数据类型范围)
  17. excel中地理坐标经纬度格式调整:保留两位小数
  18. word 2010 插入脚注 导致同页中的双栏换行
  19. 221003工作日志
  20. gtest学习笔记--2测试夹具(类)TEST_F

热门文章

  1. Flink_企业级风控平台架构建设_01
  2. 短文:U盘物理写保护原理
  3. Android11 SystemUI启动流程源码分析(一)——SystemUIApplication的创建
  4. OpenCV图像色温
  5. 网络安全——企业渗透一
  6. 后摩尔时代来临,语音IC封装技术一触即发
  7. KindEditor 360浏览器系列无法显示
  8. 人脸检测和识别的开源库总结
  9. 【信息系统项目管理师】第十五章 知识产权与法律法规(考点汇总篇)
  10. 饥荒联机版服务器显示错误,搭建服务器启动出错