【发布时间】:2015-08-13 12:56:32
【问题描述】:
RecyclerView recyclerView;
MyAdapter mAdapter;
List<ItemData> itemsData;
Global glb;
LinearLayoutManager llm;
private int valData() {
String tmpStr;
Cursor c;
int position=0;
enter code here
AutoCompleteTextView tTbl = (AutoCompleteTextView) findViewById(R.id.tblNam);
tmpStr = tTbl.getText().toString();
c = db.rawQuery("SELECT * FROM tblDts WHERE tblNam = '" + tmpStr + "'", null);
if (c.getCount() == 0) {
showMessage("Error", "Table Name Not Found");
c.close();
tTbl.requestFocus();
return 1;
}
c.close();
for (int i = 0; i < itemsData.size(); i++) {
tmpStr = itemsData.get(i).getTitle().toString();
c = db.rawQuery("SELECT * FROM itmDts WHERE itmNam = '" + tmpStr + "';", null);
if (c.getCount() == 0) {
c.close();
//llm.scrollToPositionWithOffset(i,0);
//recyclerView.smoothScrollToPosition(i);
//recyclerView.scrollToPosition(i);
我尝试了上述所有滚动过程,当我使用 getChildAt 时,它只返回前滚动而不是新滚动的视图
//View vw = llm.getChildAt(0);
tmpStr="";
当在当前显示视图之间上升 findviewholderforadapterpostion 时,它已正确显示,但如果我上升非显示位置,则返回 null RecyclerView.ViewHolder vh = recyclerView.findViewHolderForAdapterPosition(i); 查看 vw = vh.itemView;
AutoCompleteTextView tTa=(AutoCompleteTextView)vw.findViewById(R.id.item_title);
tmpStr =tTa.getText().toString();
showMessage(llm.getChildCount()+"Error" + position, "Item Name Not Found" + tmpStr);
//recyclerView.setLayoutManager(lm);
return 1;
}
c.close();
}
return 0;
}
}
}
【问题讨论】:
-
您解决了这个问题吗?
-
recyclerView.setItemViewCacheSize(0) 参考:https://stackoverflow.com/questions/37885863/onbindviewholder-is-never-called-on-view-at-position-even-though-recyclerview
-
recyclerView.setItemViewCacheSize(0) refer