如何在Xamarin.Android中保持Button按下状态?

4

我是Xamarin.Android新手,遇到了一些小问题。

我想让按钮在点击后保持按下状态,以下是我的代码:

firstSelectButton.Click += FirstSelectButton_Click;  

private void FirstSelectButton_Click(object sender, EventArgs e)
{
    firstSelectButton.Pressed = true;
    secondSelectButton.Pressed = false
}

但是它不起作用。我知道原生Android中的setPressed属性,但在Xamarin中找不到相同的属性。


你能详细说明什么没有起作用吗?Pressed属性没有更新吗?按钮的可视状态没有改变吗? - Prashant Cholachagudda
2个回答

4

当你点击 Button 时,安卓会自动重置 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


0

看一下这个setSelected

在Xamarin中,我认为你可以简单地调用button.Selected = true,同时在你的selector.xml文件中设置state_selected属性


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接