Merge change 691 into donut
* changes: Fixes 1819406. Take a ListView, add headers/footers, set the adapter after at least one layout pass, and the headers/footers don't know they have a parent anymore. Which causes a lot of trouble, like drawing not happening.
This commit is contained in:
@@ -460,10 +460,30 @@ public class ListView extends AbsListView {
|
||||
*/
|
||||
@Override
|
||||
void resetList() {
|
||||
// The parent's resetList() will remove all views from the layout so we need to
|
||||
// cleanup the state of our footers and headers
|
||||
clearRecycledState(mHeaderViewInfos);
|
||||
clearRecycledState(mFooterViewInfos);
|
||||
|
||||
super.resetList();
|
||||
|
||||
mLayoutMode = LAYOUT_NORMAL;
|
||||
}
|
||||
|
||||
private void clearRecycledState(ArrayList<FixedViewInfo> infos) {
|
||||
if (infos != null) {
|
||||
final int count = infos.size();
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
final View child = infos.get(i).view;
|
||||
final LayoutParams p = (LayoutParams) child.getLayoutParams();
|
||||
if (p != null) {
|
||||
p.recycledHeaderFooter = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Whether the list needs to show the top fading edge
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user