android上传图片后跳到首页,android——给Viewpager默认指定页(解决先进入首页而后才跳转到默认页形成闪屏的问题)...
需求:主页时viewpager+magicindicator+page实现的。但愿一进去就直接跳转到指定的页面。一听这需求,so easy ! 找打viewpager实例,mviewpager.setCurrentItem(position); 搞定,这么简单。可是一运行。发现,有闪烁,什么鬼? 是从第一个page切换过去的。这可不是我但愿的。android解决:其实思路是这样的。为何我不设置c.
需求:
主页时viewpager+magicindicator+page实现的。但愿一进去就直接跳转到指定的页面。一听这需求,so easy ! 找打viewpager实例,mviewpager.setCurrentItem(position); 搞定,这么简单。可是一运行。发现,有闪烁,什么鬼? 是从第一个page切换过去的。这可不是我但愿的。android
解决:
其实思路是这样的。为何我不设置currentitem的时候,直接默认了0,那就从这个地方入手找找看。在而后就是,我什么都不设置,直接getCurrentItem() ,这个值就是默认值,从这里入手,找到默认值是mCurItem的值,再到ViewPager的源码里找找看。是再哪里设置了mCurItem的初始值。code
这就找到位置了。既然是这里做怪,那就修理一下,你不是设置adapter的时候,默认为0 了吗? 那好,等你设置完,我再给你改为我但愿的position。 怎么改? 反射。blog
private void setDefaultItem(int position){
//我这里mViewpager是viewpager子类的实例。若是你是viewpager的实例,也能够这么干。
try {
Class c = Class.forName("android.support.v4.view.ViewPager");
Field field =c.getDeclaredField("mCurItem");
field.setAccessible(true);
field.setInt(mViewpager, position);
} catch (Exception e) {
e.printStackTrace();
}
mAdapetr.notifyDataSetChanged();
mViewpager.setCurrentItem(position);
}
改完后,再运行一下。就OK了。注意设置位置。设置玩adapter后就去改。若是adapter数据是后来绑定的。你页能够在数据绑定后再设置一次。ci
更多推荐
所有评论(0)