Xamarin.Android Switch

Switch小组件(如下所示)允许用户在两种状态(如 ON 或 OFF)之间切换。 Switch 的默认值为 OFF。 小组件在其 ON 和 OFF 状态中,如下所示:

屏幕截图显示一个处于“关闭”和“打开”状态的 Switch 小组件

创建 Switch

要创建开关,只需在 XML 中声明Switch元素,如下所示:

<Switch android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

这会创建基本开关,如下所示:

演示应用的屏幕截图,显示一个处于“关闭”状态的 Switch

更改默认值

控件针对 ON 和 OFF 状态显示的文本以及默认值都是可配置的。 例如,要使 Switch 默认为 ON 并读取 NO/YES 而不是 OFF/ON,我们可以在以下 XML 中设置checkedtextOntextOff属性。

<Switch android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOn="YES"
        android:textOff="NO" />

提供游戏

Switch小组件还支持设置text属性以包含文本标签,如下所示:

<Switch android:text="Is Xamarin.Android great?"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOn="YES"
        android:textOff="NO" />

此标记在运行时生成以下屏幕截图:

演示应用的屏幕截图,其中的文本在水平方向位于 Switch 小组件之前

Switch的值发生更改时,它会引发CheckedChange事件。 例如,在以下代码中,我们捕获此事件,并基于SwitchisChecked值(作为CompoundButton.CheckedChangeEventArg参数的一部分传递给事件处理程序)呈现Toast小组件。

Switch s = FindViewById<Switch> (Resource.Id.monitored_switch);
           
s.CheckedChange += delegate(object sender, CompoundButton.CheckedChangeEventArgs e) {
    var toast = Toast.MakeText (this, "Your answer is " +
        (e.IsChecked ?  "correct" : "incorrect"), ToastLength.Short);
    toast.Show ();
};