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

Qw4*_*4z1 13 android android-viewpager android-pageradapter

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

  1. 这是正常的行为吗?
  2. 如果是这样,为什么经常调用getCount方法呢?

为了清楚起见,我正在寻找一个比所提问题更广泛的答案.我也意识到我需要保持它的速度,并且我无法控制它的调用方式,但这不是问题所在.

nic*_*980 5

如你所述,它在onTouchEvent中使用了很多.每当您与屏幕交互时都会调用OnTouchEvent,这意味着触摸移动和释放事件.仅移动一个像素将导致对此方法的潜在调用.

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