如何在 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 属性