一、安卓开关Switch介绍

android官方文档对于Switch的定义:

Switch 是一个双状态切换开关小部件,可以在两个选项之间进行选择。用户可以来回拖动“拇指”以选择所选选项,或者只需点击即可切换,就好像它是一个复选框一样。该属性控制开关的标签中显示的文本,而 和 文本控制拇指上的文本。类似地,和相关的 setTypeface() 方法控制标签文本的字体和样式,而和相关的 setSwitchTypeface() 方法控制缩略图的字体和样式。

Switch的相关属性,如下图:

二、原生Switch缩放

在日常使用中,如果我们使用原生的Switch,当我们想要改变Switch的大小时,会发现通过改变layout_width,layout_height属性是无法改变开关控件的大小,只能改变开关占地大小,当然上图中也提到了Switch的 android:switchMinWidth 属性,可惜的是,这个属性只能改变Switch的宽度,如果你使用了这个属性,最终你将得到这样一个开关。

Switch的代码如下:

<Switchandroid:id="@+id/bag_setting_switch"android:layout_width="wrap_content"android:layout_height="200dp"android:switchMinWidth="150dp"/>

这样的样子恐怕没法得到项目经理的认可,这时,我们可以通过设置scaleX和scaleY属性来进行缩放,同时配合android:switchMinWidth来使Switch的形态看上去更加修长(当然,你也可以通过更改Switch的样式定制你喜欢的开关,这里放个链接修改原生Switch组件的样式,类似的博客站内还有很多)。

<Switchandroid:id="@+id/bag_setting_switch"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleX="1.5"android:scaleY="1.5"android:switchMinWidth="50dp"/>

三、Switch的开关控制

通过阅读Android官方文档,我们可以看到Switch的继承关系:

通过这张图,我们不难看出,Switch继承自Android的button类,所以,我们可以使用 setChecked(false) 来设置Switch的开关状态,同时可以使用 setOnCheckedChangeListener 方法来监听Switch的开关变化。例子如下:

 //这里的v ->和下面的(compoundButton, b) ->是lambda表达式用法switch_cl.setOnClickListener(v -> {if (flag) {flag = false;mSwitch.setChecked(false);} else {flag = true;mSwitch.setChecked(true);}});mSwitch.setOnCheckedChangeListener((compoundButton, b) -> {if (b) {bagSwitchCache.put("1");Toast.makeText(BagSettingActivity.this, "自动发袋已开启", Toast.LENGTH_SHORT).show();} else {bagSwitchCache.put("0");Toast.makeText(BagSettingActivity.this, "自动发袋已关闭", Toast.LENGTH_SHORT).show();}});

安卓开关Switch使用的小细节相关推荐

  1. final的8个小细节,听说只有高手才知道!你知道几个?

    final关键字是一个常用的关键字,可以修饰变量.方法.类,用来表示它修饰的类.方法和变量不可改变,下面就聊一下使用 final 关键字的一些小细节. 细节一.final 修饰类成员变量和实例成员变量 ...

  2. android系统手机流量控制方法,手机流量控制!安卓手机控制流量设置小技巧

    原标题:手机流量控制!安卓手机控制流量设置小技巧 手机流量控制!安卓手机控制流量设置小技巧?随着4G网络时代的开启,手机每月耗流量不再是以M为单位,二手以G为单位.曾经的2G时代,一个月只需要20.3 ...

  3. 为什么MacBook风扇噪音这么大?快来注意这些小细节!

    我们的Mac需要做一些繁重的工作.例如,当涉及到Web开发,照片修饰和视频编辑时.听到我们的MacBook Pro风扇控制器弹起并且MacBook Pro风扇的噪音增大,因为我们知道它工作很艰辛,所以 ...

  4. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  5. mysql被拖垮_说几个拖垮系统的小细节!

    本文首发于个人微信公众号<andyqian>,期待你的关注! 前言 有好几天没有更新了,期间确实比较忙些,以至于周末也没休息.在这期间,感触还是蛮深的.现在碎片化的想法等整理好后,再以文章 ...

  6. final关键字的这8个小细节,你get到几个?

    前言 大家好,我是狂聊君. 今天来聊 final 关键字,因为最近在看的几本书都讲到了 final 关键字,发现好多小细节自己都忽视了,抽空总结了一下,分享给大家. 正文 final关键字是一个常用的 ...

  7. 网站优化有什么值得注意的小细节吗?

    网站优化的目的就是让网站关键词达到首页,从而为网站带来更多的流量,促使网站达到更好的营销效果,那么对于关键词上首页有什么技巧,需要完善哪些细节呢?下面就跟大家一起分享一下. 一.挖掘更精准的关键词 对 ...

  8. ASP.NET MVC 自定义路由中几个需要注意的小细节

    本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...

  9. 学长的求职经验 记录【就业创业信息网、求职流程、求职小细节】

    目录 1.就业创业信息网 2.求职流程 3.求职小细节 4.毕业设计 1.就业创业信息网 郑州轻工业大学 就业创业信息网:http://job.zzuli.edu.cn/   郑州大学 就业创业信息网 ...

  10. Linux小细节-1

    Linux小细节 1.启动过程 系统启动-内核自检-linux对应程序-加载/ext/rc.local-用户密码-系统配置文件 注:shell无法实现对没有驱动的硬件控制,需要用C语言为硬件写驱动也可 ...

最新文章

  1. Jenkins 在 Kubernetes 上的实践
  2. linux 文件夹隐藏属性,Linux基础知识之文件隐藏属性
  3. 数据库连接池_DataSource_数据源(简单介绍C3P0和Druid)
  4. 光耦驱动单向可控硅_华越国际一文带路:可控硅触发设计技巧
  5. 3.5链表----链表中元素的删除(只删除一个元素情况)
  6. C++实现二叉查找树
  7. rabbitmq-plugins.bat enable rabbitmq_management
  8. JS 简易的计算器
  9. 双边滤波及其matlab代码
  10. 用计算机软件绘制思维导图,一款简单好用的在线免费思维导图制作工具
  11. iPhone显示返回的是html界面,iPhone X怎么回到主界面?苹果X返回主页的两种方法...
  12. Miracle2.1 列表页面显示附件链接
  13. 代码:批量图片格式转换(jpg-png)
  14. PS网页版在线使用PS网站源码
  15. 转载于 Bob Lyle 谈 DB2 中的 OLAP 函数
  16. 7-13 大家一起来玩游戏 (20 分)
  17. 一位医疗 AI 创业者的自述:这个行业到底需要什么样的产品?...
  18. fseek函数的用法(用于设定指针位置)
  19. 马云曾经偶像,终于把阿里留下的 1400 亿败光了
  20. 【Python】《点燃我,温暖你》李峋同款爱心_python程序

热门文章

  1. 百度地图API仿链家地图找房 聚合开发 js实现
  2. Python 数据结构之二叉树的实现
  3. 360显示服务器不可用,谢瑾:autodesk360服务不可用
  4. 邮件服务器超级用户,Postfix邮件服务器的安装与配置方法
  5. 盘点——iOS应用开发常用工具
  6. 【Java 并发编程】Java 创建线程池的正确姿势: Executors 和 ThreadPoolExecutor 详解...
  7. Mac安装原版Windows7无法验证AppleSSD.sys文件数字签名解决办法
  8. 2014.10.6模拟赛【魔兽争霸】
  9. 【Word】Word公式导出PDF后出现井号括号#()错误
  10. 解决win10新建文本文档内容可以打开但显示图标不对的问题