我有一个自定义adapter
,我忽略了isEnabled()
方法。listview isEnabled()被调用两次
我已经注意到,当方法被调用时,它被调用,触摸,然后触摸。如果你想要执行某些操作,这有点令人烦恼。
可以说你显示吐司效应。效果会闪现两次。
例子:
@Override
public boolean isEnabled(int position) {
Toast.makeText(mContext, "Hello", Toast.LENGTH_SHORT).show(); // this will flash up twice
return true;
}
有向下禁止触摸的isEnabled()
方法的一种方式?
我想'是不应该isEnabled'用作回调引发这样的动作,但它打算重写提供一些信息。换句话说,你不应该对它被调用的方式和时间有任何洞察或期望。 – fiddler
是的'isEnabled'绝对不是用来执行操作的。你应该修复你的方法,并不保证在任何接触中都会调用“isEnabled”。所以下一个Android版本可能会破坏你的代码。此外,整个'适配器'不是执行操作的最佳位置。以'ListView'(或任何使用适配器)并使用它的'setOnItemClickListener'方法来执行点击操作。 – zapl
我同意这一点。我的情况有点独特,因为我需要在列表项被点击和禁用时通知用户。我可以通过扩展适配器并覆盖isEnabled()来很好地管理它。 – HGPB