diff options
author | Alan Viverette <alanv@google.com> | 2013-11-15 15:56:38 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2013-11-15 15:56:38 -0800 |
commit | 20cc605b69a017316112929666255226c184a376 (patch) | |
tree | f73ad4ac54fc7bab29b74801e97bcc8f75fc5316 /core/java | |
parent | 7fbed8456f3f73f64bdc20467c69f02ec2aece0c (diff) | |
download | frameworks_base-20cc605b69a017316112929666255226c184a376.zip frameworks_base-20cc605b69a017316112929666255226c184a376.tar.gz frameworks_base-20cc605b69a017316112929666255226c184a376.tar.bz2 |
Fix header and footer dividers to match docs
BUG: 11712110
Change-Id: I9c62f086b6957e124a392ff5f811427557518590
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/widget/ListView.java | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 81a17c5..b272f39 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -267,6 +267,7 @@ public class ListView extends AbsListView { info.data = data; info.isSelectable = isSelectable; mHeaderViewInfos.add(info); + mAreAllItemsSelectable &= isSelectable; // Wrap the adapter if it wasn't already wrapped. if (mAdapter != null) { @@ -360,6 +361,7 @@ public class ListView extends AbsListView { info.data = data; info.isSelectable = isSelectable; mFooterViewInfos.add(info); + mAreAllItemsSelectable &= isSelectable; // Wrap the adapter if it wasn't already wrapped. if (mAdapter != null) { @@ -3242,14 +3244,13 @@ public class ListView extends AbsListView { if (drawDividers && (bottom < listBottom) && !(drawOverscrollFooter && isLastItem)) { final int nextIndex = (itemIndex + 1); - // Draw dividers between enabled items, headers and/or - // footers when enabled, and the end of the list. - if (areAllItemsSelectable || ((adapter.isEnabled(itemIndex) - || (headerDividers && isHeader) - || (footerDividers && isFooter)) && (isLastItem - || adapter.isEnabled(nextIndex) - || (headerDividers && (nextIndex < headerCount)) - || (footerDividers && (nextIndex >= footerLimit))))) { + // Draw dividers between enabled items, headers + // and/or footers when enabled and requested, and + // after the last enabled item. + if (adapter.isEnabled(itemIndex) && (headerDividers || !isHeader + && (nextIndex >= headerCount)) && (isLastItem + || adapter.isEnabled(nextIndex) && (footerDividers || !isFooter + && (nextIndex < footerLimit)))) { bounds.top = bottom; bounds.bottom = bottom + dividerHeight; drawDivider(canvas, bounds, i); @@ -3291,14 +3292,13 @@ public class ListView extends AbsListView { if (drawDividers && (top > effectivePaddingTop)) { final boolean isFirstItem = (i == start); final int previousIndex = (itemIndex - 1); - // Draw dividers between enabled items, headers and/or - // footers when enabled, and the end of the list. - if (areAllItemsSelectable || ((adapter.isEnabled(itemIndex) - || (headerDividers && isHeader) - || (footerDividers && isFooter)) && (isFirstItem - || adapter.isEnabled(previousIndex) - || (headerDividers && (previousIndex < headerCount)) - || (footerDividers && (previousIndex >= footerLimit))))) { + // Draw dividers between enabled items, headers + // and/or footers when enabled and requested, and + // before the first enabled item. + if (adapter.isEnabled(itemIndex) && (headerDividers || !isHeader + && (previousIndex >= headerCount)) && (isFirstItem || + adapter.isEnabled(previousIndex) && (footerDividers || !isFooter + && (previousIndex < footerLimit)))) { bounds.top = top - dividerHeight; bounds.bottom = top; // Give the method the child ABOVE the divider, |