欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android Material Design控件之Switch|SwitchCompat

程序员文章站 2022-03-07 08:30:35
...

Android Material Design Android官方控件学习目录

Switch|SwitchCompat

  • extends CompoundButton
  • Switch的应用场景和ToggleButton类似,多应用于两种状态的切换。
  • Switch是在Android4.0(API14)以后推出的,要注意开发时的minsdk设置
  • API 21 Switch的为MD风格,API14-API21之间为holo风格
  • API 21也推出support v7 包下的SwitchCompat的Material Design 开关控件,对低版本的有了更好的的支持。
  • 所以请使用android.support.v7.widget.SwitchCompat
  • 所以请使用android.support.v7.widget.SwitchCompat
  • 所以请使用android.support.v7.widget.SwitchCompat

导入v7库

'com.android.support:appcompat-v7:26.1.0'

简单使用

<Switch
		android:id="@+id/Switch"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="Switch"
		android:showText="true"
		android:textOn="开"
		android:switchPadding="25dp"
		android:textOff="关"
		android:thumb="@drawable/ic_action_play"
		android:typeface="monospace"
		android:layout_marginLeft="32dp"
		android:switchMinWidth="100dp"
		android:splitTrack="false"
		android:thumbTextPadding="10dp"
		android:trackTint="@color/color_switch_track"
		android:switchTextAppearance="@style/SwitchHintAppearance"
		app:layout_constraintLeft_toLeftOf="parent"
		app:layout_constraintTop_toTopOf="parent"
		android:layout_marginTop="32dp"/>

不管风格的使用方式

以下属性可能没有效果,因为不兼容低版本API
API 21及以上为MD风格,API14-API21之间为holo风格

  • android:textOff=“开”:设置开关开启的按钮文字
  • android:textOn=“关”:设置开关关闭时的按钮文字
  • android:checked="":设置初始选中状态
  • android:showText=“true”:设置是否显示按钮上的文字(API 21及以上)
  • android:switchMinWidth="":开关最小宽度

以下属性可能没有效果,因为不兼容低版本API

左侧提示文字

  • android:text=“Switch” 设置提示文字
  • android:switchPadding="":设置开关与提示文字的空白距离
    拇指按钮文字的风格
  • android:switchTextAppearance="":设置拇指按钮文字
    设置文字风格 字体类型
  • android:typeface=“serif” 设置字体类型
    Typeface (normal, sans, serif, monospace) for the text
  • android:textStyle 设置文字风格
    Style (bold, italic, bolditalic) for the text.

thumb 拇指按钮

  • android:thumb="":设置开关的图片 setThumbResource (int resId) API16
  • android:thumbTextPadding text与thumb的padding API16
  • android:thumbTint 着色 setThumbTintList(ColorStateList) API23
  • android:thumbTintMode 着色模式 API23
    src_over 3
    src_in 5
    src_atop 9
    multiply 14
    screen 15
    add 16

track 轨迹

  • android:track="":设置开关的轨迹图片 .9图
  • android:trackTint 与trackTint配合
  • android:trackTintMode 与trackTint配合
app:trackTint="@color/color_switch_track"
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#2266cc" android:state_checked="true"></item>//必须
	<item android:color="#fff" ></item>//必须
</selector>

使用SwitchCompat完美向下兼容

<android.support.v7.widget.SwitchCompat
		android:id="@+id/SwitchCompat"
		android:text="SwitchCompat"
		app:showText="true"
		android:textOn="开"
		android:textOff="关"
		app:switchMinWidth="100dp"
		android:checked="true"
		app:switchPadding="25dp"
		app:splitTrack="false"
		android:thumb="@drawable/ic_action_play"
		app:thumbTint="@color/color_switch_thumb"
		app:thumbTintMode="src_atop"
		app:thumbTextPadding="10dp"
		app:trackTint="@color/color_switch_track"
		app:switchTextAppearance="@style/SwitchHintAppearance"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="32dp"
		app:colorControlActivated="#bbeeaa"
		app:layout_constraintLeft_toLeftOf="parent"
		android:layout_marginTop="32dp"
		app:layout_constraintTop_toBottomOf="@+id/Switch"/>

属性设置没效果,将android: 改为app:

以下为需要改为app:的属性

app:showText="true" 
app:switchMinWidth="100dp"  
app:switchPadding="25dp"
app:switchTextAppearance=" " 
app:thumbTextPadding="10dp"
app:thumbTint  
app:thumbTintMode 
app:splitTrack="true"
app:trackTint

点击时背景变灰

android:background="@null"

Android Material Design控件之Switch|SwitchCompat 源码地址:https://github.com/LinweiJ/MaterialDesignWidget