0
我正在學習StackView和AdapterViewAnimator。 並發現,在AdapterViewAnimator中,它不會直接刪除子項,而是將它們放入數組中, 並在下一階段刪除。爲什麼AdapterViewAnimator在兩個階段中刪除兒童?
有人能解釋一下這個設計的原因是什麼? 爲什麼我不能直接刪除它們?
的更多信息: 我也注意到, 由於上述設計, StackView(延伸AdapterViewAnimator) 都會有一些孩子流連忘返...... 並導致我想問問爲什麼。
的更多信息:下面 是代碼片段,我上面提到: (從AdapterViewAnimator.showOnly(INT,布爾值))
// This section clears out any items that are in our active views list
// but are outside the effective bounds of our window (this is becomes an issue
// at the extremities of the list, eg. where newWindowStartUnbounded < 0 or
// newWindowEndUnbounded > adapterCount - 1
for (Integer index : mViewsMap.keySet()) {
boolean remove = false;
if (!wrap && (index < rangeStart || index > rangeEnd)) {
remove = true;
} else if (wrap && (index > rangeEnd && index < rangeStart)) {
remove = true;
}
if (remove) {
View previousView = mViewsMap.get(index).view;
int oldRelativeIndex = mViewsMap.get(index).relativeIndex;
mPreviousViews.add(index);
transformViewForTransition(oldRelativeIndex, -1, previousView, animate);
}
}
感謝。 BR, Henry