如何防止在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);
}
我有一个 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);
}