如何防止在Android中快速点击切换标签

How to prevent quickly click switch tab in Android

我有一个 tablayout 如下所示:

我想设置一个标签切换的间隔时间(例如:500ms),这意味着当我点击"First"标签然后立即点击"Second"时,它不会切换到标签"Second",当且仅当 "First" 单击且在 500 毫秒后,选项卡 "Second" 上的单击事件有效,如果我单击后跟 "First"、"Second"、"Third"和"Fourth"在500ms后,点击"Second"和"Third"会失效,tab会直接从"First"切换到"Fourth",怎么能我实现了????

我不确定我是否完全理解您使用选项卡的逻辑。无论如何,您可以使用 Handler 来等待 500 毫秒。您可以根据需要修改示例。

您可以像这样创建一个处理程序:

boolean mClickAllowed = true;
Handler mHandler = new Handler();
Runnable mRunnable = new Runnable() {
    public void run() {
        mClickAllowed = true;
    }
};

检查是否允许点击。单击选项卡后,您将启动可运行程序并将 mClickAllowed 设置为 false。 runnable 将允许在 500 毫秒后点击。

// Your Tab clickListner
public void onTabClick(View view) {
    if(mClickAllowed) {
        // When a tab is clicked, post the runnable
        mClickAllowed = false;
        mHandler.postDelayed(mRunnable, 500); // run after 500ms
    }
}

不要忘记在暂停 Activity

后从处理程序中删除回调
protected void onPause() {
    mHandler.removeCallbacks(mRunnable);
}