【问题标题】:Toast Message Showing Continiously when Rapidly Click Button快速单击按钮时持续显示 Toast 消息
【发布时间】:2018-12-31 10:30:00
【问题描述】:

这里我在 Xamarin Forms Android 中显示 toast 消息

我的代码: 在我的 Android 类中

public void ShortAlert(string message)
{            
    Toast.MakeText(Forms.Context, message, ToastLength.Short).Show();            
}

当用户单击 A 按钮时,我正在显示此 toast 消息。但是当用户快速单击按钮时,它会持续闪烁(5 次按钮单击显示 toast 5 次)。 所以我想如果用户第二次点击这个按钮,那么之前的 toast 应该被取消。 如何在 Xamarin 形式的 android 中做到这一点?

【问题讨论】:

  • 所以你只想展示这个吐司一次,然后再也不展示?
  • 不不。我希望如果用户快速点击一个按钮,那么它只显示一次。

标签: xamarin xamarin.forms


【解决方案1】:

您可以尝试取消Toast,因为它不会在屏幕上显示很长时间

public void ShowToast(string message)
{
    if (objToast!= null)
    {
        objToast.Cancel();
    }
    objToast = Toast.MakeText(Forms.Context, message, ToastLength.Short);
    objToast.Show();
}

像这样在类级别声明objToast

private Toast objToast;

【讨论】:

  • 问题不在于 Toast 本身,而在于点击按钮时触发的命令或事件。你用的是什么 MVVM 框架?
【解决方案2】:

你可以添加一次点击的生效时间,比如只有第一次点击对3秒内的多次点击有效,那么你可以这样修改代码:

public static int MIN_CLICK_DELAY_TIME = 3000;//the effective time
private long lastClickTime = 0;

public void ShortAlert(string message)
   {            
       long currentTime = Calendar.Instance.TimeInMillis;
       if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME)
           {
             lastClickTime = currentTime;
             Toast.MakeText(Forms.Context, message, ToastLength.Short).Show();    
           }        
   }

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多