我正面臨着我一直無法解決的最奇怪的問題。adapter.getview中的IllegalStateException異常循環
我有以下環路它做正確的工作:
for (int i = 0; i < adapterCount; i++) {
View listItem = mListAdapter.getView(i, null, mListView);
listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
height += listItem.getMeasuredHeight();
}
但是它是緩慢的。爲了提高性能,並且因爲每個listItem將具有相同的大小,我想將前兩行放在循環外部。這是我嘗試:
View listItem = mListAdapter.getView(0, null, mListView);
listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
for (int i = 0; i < adapterCount; i++) {
height += listItem.getMeasuredHeight();
}
但是這給了我一個例外,在第一行:
java.lang.IllegalStateException: couldn't move cursor to position 0
沒有人有任何想法這是爲什麼?
謝謝!
adapterCount == 0.好吧。 – greenapps
如果項目具有完全相同的高度,則不需要循環。最後的高度是'adaptorCount'次'高度' – Blackbelt
謝謝你的回答。我的想法是計算高度一次,然後乘以adapterCount,但我神祕地這樣做的方式給了我一個例外 –