为什么在PagerAdapter中多次调用getCount?

时间:2013-01-19 06:10:23

标签: android android-viewpager android-pageradapter

我今天注意到PagerAdapter被大量调用。当慢慢滚动页面时,我计算了393。我看到this question但它并没有给我一个很好的答案。

  1. 这是正常行为吗
  2. 如果是这样,为什么经常调用getCount方法?
  3. 为了清楚起见,我正在寻找一个比所提问题更广泛的答案。 我也意识到我需要保持它的速度,并且我无法控制它的调用方式,但这不是问题所在。

1 个答案:

答案 0 :(得分:5)

正如您所总结的那样,它在onTouchEvent中被大量使用。每当您与屏幕交互时都会调用OnTouchEvent,这意味着触摸移动和释放事件。仅移动一个像素将导致对此方法的潜在调用。

没有更多要解释的,只是它的实施方式。通常,adapter.getCount是使用List.getSize或Cursor.getCount实现的。并且开销几乎为零。如果这是一个问题,请优化ListAdapter.getCount方法,缓存计数或类似的东西。只在需要时在那里做复杂的东西并缓存结果直到它变得无效。