You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Xamarin中如何实现按钮延迟5秒显示后永久不消失

问题根源

Device.StartTimer 回调函数的布尔返回值用于控制定时器是否重复执行:

  • 返回 true:定时器会按照设定的间隔循环触发回调
  • 返回 false:定时器执行1次后自动销毁,不再触发

你当前代码返回 true 导致定时器永久循环,如果你初始是隐藏按钮,第一次回调设置为可见、第二次回调又设置为隐藏,就会出现反复切换的问题。

修复代码

把回调返回值改为 false 即可,定时器只会执行一次,按钮设置为可见后不会再触发后续逻辑:

Device.StartTimer(TimeSpan.FromSeconds(5), () =>
{
    // 将目标按钮设置为可见
    TargetButton.IsVisible = true;
    // 返回false终止定时器
    return false;
});

可选替代方案

如果你的逻辑可以写在异步方法中,用Task.Delay实现逻辑更直观,不需要处理定时器的生命周期:

// 仅需在异步上下文中执行以下代码
await Task.Delay(5000);
TargetButton.IsVisible = true;

注意:如果涉及UI控件属性修改,上述两种写法默认均在Xamarin UI线程执行,常规场景不需要额外做线程调度。


内容的提问来源于stack exchange,提问作者Stavrogin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:09:03