diff options
author | Mindy Pereira <mindyp@google.com> | 2011-08-17 13:46:32 -0700 |
---|---|---|
committer | Mindy Pereira <mindyp@google.com> | 2011-08-17 13:54:51 -0700 |
commit | d48018c1345a557221f2f2a36e8507ff891b8bf5 (patch) | |
tree | ef41cef7126e83549bf7492de4d885e82cf320b4 | |
parent | 2859eb0fec820a0677dce9a72f49601f10592a62 (diff) | |
download | mailcommon-ics-mr0-release.tar.gz |
Make sure this uses the same logic as spinner.android-sdk-adt_r16.0.1android-cts-4.0_r1android-4.0.2_r1android-4.0.1_r1.2android-4.0.1_r1.1android-4.0.1_r1ics-mr0-releaseics-mr0ics-factoryrom-2-release
There were fixes to determining the horizontal offset of the dropdown
view for spinners in fwk:
https://android-git.corp.google.com/g/#/c/128373/1
Since MultiAdapterSpinner doesn't use a spinner, we have to copy this logic.
Fixes b/5165079 account spinner dropdown padding / dropdown position off
Change-Id: Ifa0dfc319db65d36c6e0317cfbd10954e7ae16db
-rw-r--r-- | java/com/android/mailcommon/MultiAdapterSpinner.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/java/com/android/mailcommon/MultiAdapterSpinner.java b/java/com/android/mailcommon/MultiAdapterSpinner.java index 85a67f0..cd58f3e 100644 --- a/java/com/android/mailcommon/MultiAdapterSpinner.java +++ b/java/com/android/mailcommon/MultiAdapterSpinner.java @@ -22,6 +22,8 @@ import com.android.mailcommon.MergedAdapter.ListSpinnerAdapter; import com.android.mailcommon.MergedAdapter.LocalAdapterPosition; import android.content.Context; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; @@ -57,6 +59,7 @@ public class MultiAdapterSpinner extends FrameLayout protected ListPopupWindow mPopup; private int mSelectedPosition = -1; + private Rect mTempRect = new Rect(); /** * A basic adapter with some callbacks added so clients can be involved in spinner behavior. @@ -142,6 +145,14 @@ public class MultiAdapterSpinner extends FrameLayout mAdapter.getSubAdapter(i).onShowPopup(); } + final int spinnerPaddingLeft = getPaddingLeft(); + final Drawable background = mPopup.getBackground(); + int bgOffset = 0; + if (background != null) { + background.getPadding(mTempRect); + bgOffset = -mTempRect.left; + } + mPopup.setHorizontalOffset(bgOffset + spinnerPaddingLeft); mPopup.show(); mPopup.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); mPopup.setSelection(mSelectedPosition); |