diff options
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9903b7e88ed9..e963f53dd915 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2568,7 +2568,13 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te selectorRect.right += mSelectionRightPadding; selectorRect.bottom += mSelectionBottomPadding; - // Update the selector drawable. + // Update the child enabled state prior to updating the selector. + final boolean isChildViewEnabled = sel.isEnabled(); + if (mIsChildViewEnabled != isChildViewEnabled) { + mIsChildViewEnabled = isChildViewEnabled; + } + + // Update the selector drawable's state and position. final Drawable selector = mSelector; if (selector != null) { if (positionChanged) { @@ -2588,14 +2594,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te selector.setHotspot(x, y); } } - - final boolean isChildViewEnabled = mIsChildViewEnabled; - if (sel.isEnabled() != isChildViewEnabled) { - mIsChildViewEnabled = !isChildViewEnabled; - if (getSelectedItemPosition() != INVALID_POSITION) { - refreshDrawableState(); - } - } } @Override |