如何在 Xamarin.Android 中保持 Button.Pressed 状态?
How to persist Button.Pressed state in Xamarin.Android?
我是 Xamarin.Android 的新手,遇到了一些小问题。
我想在点击后在按钮中保持按下状态,这就是我的代码:
firstSelectButton.Click += FirstSelectButton_Click;
private void FirstSelectButton_Click(object sender, EventArgs e)
{
firstSelectButton.Pressed = true;
secondSelectButton.Pressed = false
}
但是没用。我知道本机 Android 中的 setPressed
属性,但在 Xamarin 中找不到相同的属性。
当您点击Button
时android会自动重置Pressed
状态。
您可以使用 Touch
事件来解决这个问题,例如:
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Touch += (s, e) => {
if (e.Event.Action == Android.Views.MotionEventActions.Down) {
e.Handled = true;
return;
}
if (e.Event.Action == Android.Views.MotionEventActions.Up) {
e.Handled = false;
}
button.Pressed = !button.Pressed;
e.Handled = true;
};
如您所见,代码有点乱,所以我建议您使用 ToggleButton
而不是 Button
。
看看这个
setSelected
在 Xamarin 中,我认为您可以简单地调用 button.Selected = true,同时在您的 selector.xml 文件中设置 state_selected 属性
我是 Xamarin.Android 的新手,遇到了一些小问题。
我想在点击后在按钮中保持按下状态,这就是我的代码:
firstSelectButton.Click += FirstSelectButton_Click;
private void FirstSelectButton_Click(object sender, EventArgs e)
{
firstSelectButton.Pressed = true;
secondSelectButton.Pressed = false
}
但是没用。我知道本机 Android 中的 setPressed
属性,但在 Xamarin 中找不到相同的属性。
当您点击Button
时android会自动重置Pressed
状态。
您可以使用 Touch
事件来解决这个问题,例如:
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Touch += (s, e) => {
if (e.Event.Action == Android.Views.MotionEventActions.Down) {
e.Handled = true;
return;
}
if (e.Event.Action == Android.Views.MotionEventActions.Up) {
e.Handled = false;
}
button.Pressed = !button.Pressed;
e.Handled = true;
};
如您所见,代码有点乱,所以我建议您使用 ToggleButton
而不是 Button
。
看看这个 setSelected
在 Xamarin 中,我认为您可以简单地调用 button.Selected = true,同时在您的 selector.xml 文件中设置 state_selected 属性