met*_*e38 10 java android adapter android-fragments android-viewpager
我有ViewPager一些片段.每个片段都有一个ListViewa SlidingDrawer(在滑动前不可见)和一个ArrayAdapter.
适配器已启用onCreateView(),这会减慢滑动速度,因为每次刷卡时都必须加载30个列表项,因为正在创建新的片段.
我的问题是,是否可以在ViewPager闲置时滑动后设置适配器?或者,还有更好的方法?在展开SlidingDrawer时,需要已经加载List.
Cod*_*oid 16
我遇到了类似的问题......我使用了听众.尽管如此,当你背靠背地翻两页时,它仍然是滞后的...我做了类似的事情,改善了体验....
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
int positionCurrent;
boolean dontLoadList;
@Override
public void onPageScrollStateChanged(int state) {
if(state == 0){ // the viewpager is idle as swipping ended
new Handler().postDelayed(new Runnable() {
public void run() {
if(!dontLoadList){
//async thread code to execute loading the list...
}
}
},200);
}
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
positionCurrent = position;
if( positionOffset == 0 && positionOffsetPixels == 0 ) // the offset is zero when the swiping ends{
dontLoadList = false;
}
else
dontLoadList = true; // To avoid loading content for list after swiping the pager.
}
}
Run Code Online (Sandbox Code Playgroud)
如果您花费几毫秒来加载作为viewpager补充的列表,那么它在UX方面确实没有给出糟糕的滑动体验......所以,想法是在加载之前在线程中等待400ms列出并确保当用户尝试快速滑动以查看viewpager内容时,您实际上不加载内容...
我的问题是,寻呼机空闲时刷卡后是否可以设置适配器?
您可以OnPageChangeListener在 上设置ViewPager来监视滑动手势。然后,您可以使用onPageSelected()(或onPageScrollStateChanged() 监视当前状态)方法在选择新页面时收到通知,并从该方法开始加载数据。
另外,请确保它们ListView对延迟负责,而不是代码的其他部分。
| 归档时间: |
|
| 查看次数: |
10286 次 |
| 最近记录: |