wel*_*ade 10 android listview indicator pager android-viewpager
我有PageAdapter一周中的几天,对于每个寻呼机,我有相同的布局.我的问题是如何在更改日期时更新正确的listView.当我改变传呼机创建新的寻呼机并删除其他时,当发生这种情况时,我的列表视图指向新寻呼机而不是当前.例如,在wedneyday我保存列表视图的参考,当我在星期二改变周一寻呼机是创建和周四被删除,我的参考点,以最后一页创建(星期一),但我在星期二.
我的页面适配器:
ListView lvwConfig;
@Override
public Object instantiateItem(View pager, int position) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.pager_layout, null);
lvwConfig = (ListView) v.findViewById(R.id.lvwConfig);
((ViewPager) pager).addView(v, 0);
return v;
}
Run Code Online (Sandbox Code Playgroud)
我想ListView总是指向当前项目的listview.
jul*_*ier 42
阅读这篇文章:PagerAdapter
您可以在PagerAdapter中实现此功能:
public int getItemPosition(Object object){
return POSITION_NONE;
}
Run Code Online (Sandbox Code Playgroud)
之后,你可以使用这个功能:
yourPagerAdapterObject.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
如果您有太多的显示视图,则此方法很糟糕.所有视图总是重新计算.但在你的情况下,对于一些观点,它没关系.
在PagerAdapter中覆盖getItemPosition更容易,但效率更低.这样,当您调用时notifyDataSetChanged(),视图寻呼机将删除所有视图并重新加载它们.因此,获得了重载效果.alvarolb建议的另一个选项是setTag()在instantiateItem()实例化新视图时使用方法.然后notifyDataSetChanged(),您可以使用findViewWithTag()查找要更新的视图而不是使用它.
| 归档时间: |
|
| 查看次数: |
50971 次 |
| 最近记录: |