如何在Xamarin.Android中保留Button.Pressed状态?

时间:2016-04-01 12:42:21

标签: android xamarin 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中找不到相同的属性。

2 个答案:

答案 0 :(得分:4)

单击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

答案 1 :(得分:0)

看看这个 setSelected

在Xamarin中,我认为你只需调用button.Selected = true,也可以在selector.xml文件中设置state_selected属性