gor*_*man 126 android android-widget android-viewpager
我ViewPager用来允许用户在其视图之间滑动.有没有办法如何强制它ViewPager重新加载/重新实例化它们的视图,以防它们不再有效或需要刷新?我试图调用notifyDataSetChanged()它的适配器,但这不会instantiateItem()再次调用方法.
这是从ViewPager及其适配器定义扩展的类.Bellow是refresh()我想要强制刷新项目时调用的方法.
public class DayFlipper extends ViewPager {
public class FlipperAdapter extends PagerAdapter {
@Override
public int getCount() {
return DayFlipper.DAY_HISTORY;
}
@Override
public void startUpdate(View container) {
}
@Override
public Object instantiateItem(View container, int position) {
Log.d(TAG, "instantiateItem(): " + position);
Date d = DateHelper.getBot();
for (int i = 0; i < position; i++) {
d = DateHelper.getTomorrow(d);
}
d = DateHelper.normalize(d);
CubbiesView cv = new CubbiesView(mContext);
cv.setLifeDate(d);
((ViewPager) container).addView(cv, 0);
// add map
cv.setCubbieMap(mMap);
cv.initEntries(d);
return cv;
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((CubbiesView) object);
}
@Override
public void finishUpdate(View container) {
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((CubbiesView) object);
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
}
...
public void refresh() {
getAdapter().notifyDataSetChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
And*_*oid 159
有同样的问题.对我来说,它打电话给我
viewPage.setAdapter( adapter );
Run Code Online (Sandbox Code Playgroud)
再次导致再次重新实现页面.
gor*_*man 85
我找到了解决方案.这只是我的问题的解决方法,但目前是唯一的解决方案.
public int getItemPosition(Object object) {
return POSITION_NONE;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这是不是一个错误?
| 归档时间: |
|
| 查看次数: |
140166 次 |
| 最近记录: |