私が解決できなかった最も奇妙な問題に直面しています。それは遅いですが外部ループの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のサイズが同じになるため、最初の2行をループの外側に配置します。これは私が試した方法です:
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
アイテムの高さがすべて同じ場合、ループは必要ありません。最終的な高さは 'adapterCount'と' height'です – Blackbelt
あなたの答えをありがとう。私の考えは、高さを一度計算してからadapterCountでそれを掛けることです。しかし、私はそれを神秘的に行っています。 –