关于adapter的getView的position问题
来源:互联网 发布:金融大数据刷新 编辑:程序博客网 时间:2024/05/26 08:42
adapter的getview(int position, View convertView, ViewGroup parent)的缓存比较多,比如一页可以显示8个,0-7。那么向下滑动2个之后在getview只会有position8,和9,说明其他的调用的其他的缓存,如果按照一般拖动的实现,应该将上一次的图像生成个bitmap,具体还要看看源代码吧,还有convertView是否为null的规律
Item item;if(convertView == null) {Log.d(TAG, "position>>"+position+">>convertivew null");FrameLayout layout = new FrameLayout(TestAdapterPosition.this);FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, 60);TextView tt = new TextView(TestAdapterPosition.this);layout.addView(tt, lp);convertView = layout;item = new Item();item.t = tt;convertView.setTag(item); }else{Log.d(TAG, "position>>"+position+">>convertivew is not null");item = (Item) convertView.getTag();}TODO
///--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
说一下一个需求的解决,自绘的tab共有一个listview,要求每个tab记住listview已经scrolly位置,tab切回来的时候要还原位置。
从listview中取得adapter item的position好像比较方便,但是想随意取出对应position的view,从mListview.getSelectedView()靠谱,mAdapter.getView(int position, View convertView, ViewGroup parent)应该是对应的,但是位置都显示为0,最后mListview.getChildAt(0)计算偏移位置位置,配合mListview.getFirstVisiblePosition()记住position。还有一直没太搞懂这个适配器模式,我认为getchildAt()在listview不太好使呢,这里要注意的是getChildAt(0),它的0是从第一个可视的开始算,总共也就可视的那几个,超过了就返回为null了。代码如下:
Rect rect = new Rect();if(mListview.getChildAt(0) != null) {mListview.getChildAt(0).getHitRect(rect);}mTabScrollY[tab] = rect.top;mTabPosition[tab] = mListview.getFirstVisiblePosition();在tab切回来的时候重新定位
mListview.setSelectionFromTop(mTabPostion[tab], mTabScrollY[tab]);
- 关于adapter的getView的position问题
- adapter的 getView 获取ListView的Position位置的ItemView
- GridView Adapter里的getView多次调用position 0 解决方案
- 关于重写的listview adapter中,在getView()方法中,打印语句时,相同的position打印了多次,重复调用问题
- 关于Adapter中getView的重写方法
- Adapter的getView不调用的问题
- adapter中getview重复调用的问题
- 分离adapter的getView
- Adapter的getView方法
- android Adapter 多次调用getview的position=0 position总是0
- 关于adapter 多次打印getView问题,解决方案
- Android 重写lisview的adapter的getView方法,position一直是0
- 解决gridview的Adapter中getview方法,当position==0的时候加载两次
- Android 重写lisview的adapter的getView方法,position一直是0
- Adapter的getView方法详解
- Adapter中getView的理解!
- Adapter的getView方法详解
- adapter的getView多次执行
- 【转】窗口style--WS_OVERLAPPEDWINDOW 分析
- SQL分组小计功能的实现
- 2011年1月21日
- joj 1386解题报告
- Excel
- 关于adapter的getView的position问题
- rpmbuild制作2
- 谈谈C#文件监控对象FileSystemWatcher使用感受
- 基础——总结
- rpmbuild制作3
- MyEclipse8.6本地无网络安装SVN
- 防止重复提交表单---Struts中Token的使用方法
- 年度总结之九: 玩家的问题
- String介绍