如果您只使用列表中的单个项目(如TextView),则只需创建一个类,在此调用中实现OnItemClickListener,然后在toonItemClick()方法中初始化myListView.setOnItemClickListenet(null);然后使用Handler.postDelayed方法再次设置onItemClickListener. like
/*example with Handler():*/
final boolean[] allowClick = {true};
myview.setOnClickListener(v -> {
//exit if not allowed
if(!allowClick[0])
return;
//do stuff
//we clicked, block another click
allowClick[0] =false;
//wait 0.7 seconds and allow another click
new Handler().postDelayed(() -> allowClick[0] =true, 700);
});
7条答案
按热度按时间oxcyiej71#
只需在列表视图的选择上添加
listView.setEnabled(false);
,选择后,当响应到来或返回按钮按下时,只需写入----listView.setEnabled(true);
n1bvdmb62#
您应该限制目标Activity(单击项目时打开的Activity),使其在任何时间点都只有一个示例。
对this SO question的回答应该可以帮助你实现这一点。这样,如果你不小心双击,你仍然会看到一个新的屏幕。
vwoqyblh3#
尝试引入和覆盖isEnabled方法
列表视图。
引入一个布尔值for flag和一个int来维护上次单击位置
重写isEnabled方法,如下所示
然后从单击侦听器中设置最后单击的位置,如下所示
希望这将为您的工作,以防止双击,增强相应。
bvjveswy4#
如果您只使用列表中的单个项目(如TextView),则只需创建一个类,在此调用中实现OnItemClickListener,然后在toonItemClick()方法中初始化myListView.setOnItemClickListenet(null);然后使用Handler.postDelayed方法再次设置onItemClickListener. like
这对我来说是一直有效的。
u5i3ibmn5#
在您的XAML视图页面中放置isEnable属性作为可绑定的双向模式。
在xaml页面的视图模型中:
oiopk7p56#
我有一个双窗格布局,一个列表视图控制一个细节视图。一开始我认为延迟处理程序是最糟糕的主意,但经过测试后,它是最简单的。否则,一旦加载了另一个细节,我就必须在Activity和fragment之间进行通信以启用列表视图项。容易出错且复杂。
jfgube3f7#
这个解决方案是在ListFragment上实现的。如果点击取消ListFragment以显示细节视图(通常会这样),则下次ListFragment出现时,点击计数器将在OnResume()中重置: