Android:使用文本和自定义视图切换

Posted

技术标签:

【中文标题】Android:使用文本和自定义视图切换【英文标题】:Android: Switch with text and custom view 【发布时间】:2019-08-03 19:46:55 【问题描述】:

我需要开发一个如图所示的按钮:

如何自定义 Switch?或者如果不可能,如何实现这个自定义视图?

【问题讨论】:

【参考方案1】:

试试这个

 <Switch
    android:id="@+id/switch1"
    android:layout_
    android:layout_
    android:background="@drawable/toogle_switch"
    android:text=""
    android:textOn=""
    android:textOff="" />

toogle_switch.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/on" android:state_checked="true"></item>
   <item android:drawable="@drawable/off" android:state_checked="false"></item>
</selector>

【讨论】:

【参考方案2】:
 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_ android:layout_>
    <Switch
        android:id="@+id/switch1"
        android:layout_
        android:layout_
        android:switchMinWidth="56dp"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="120dp"
        android:text="Switch1:"
        android:checked="true"
        android:textOff="OFF"
        android:textOn="ON"/>
    </RelativeLayout>

RelativeLayout layout = (RelativeLayout)findViewById(R.id.r_layout);
Switch sb = new Switch(this);
sb.setTextOff("OFF");
sb.setTextOn("ON");
sb.setChecked(true);
layout.addView(sb);


Switch sw = (Switch) findViewById(R.id.switch1);
sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
        if (isChecked) 
            // The toggle is enabled
         else 
            // The toggle is disabled
        
    
);

【讨论】:

以上是关于Android:使用文本和自定义视图切换的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中使用 SearchableSpinner 和自定义适配器

Android Activity简介和自定义视图

如何在列表适配器中正确使用 ViewHolder 和自定义视图

需要帮助在Android中使用多个按钮自定义视图

如何创建自定义 MKAnnotationView 和自定义注释标题和副标题

使用窗口调整自定义视图的大小