我会尽力解释我的问题。
我有一个viewpager,其中包含很多页面,我可以在它们之间进行水平滑动。我添加了一个监听器(OnPageChangeListener),因为我需要在页面更改时做一些事情。
在OnPageSelected中我更新了一个标题,它只是一个TextView。事实是,这种更新导致我的滑块“滞后”一毫秒,这会中断平滑的流动。但这只会在我进行“快速”滑动时发生,这意味着实际的捕捉会导致滑块改变页面。如果我整个滑动到下一页,那很好。
基本上我想知道我的选择是什么。我想在完全完成对页面的捕捉时更新标题,而不是同时导致小的闪烁效果。
答案 0 :(得分:0)
根据Google Docs,当选择新页面时,将调用viewpager onPageSelected 。 动画不一定完整。如果在onPageSelected中更改标题,则更改UI会导致动画延迟,并且看起来像滞后。
您可以在 onPageScrollStateChanged(int state)方法中更改标题的解决方案。
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int state) {
case ViewPager.SCROLL_STATE_IDLE:
int arg0=pager.getCurrentItem();
if(arg0==0)
{
header.setText("Your Text Here");
}
}
});