From 36187a26e940fc2d146ab8f5d1b52e5039c7acf3 Mon Sep 17 00:00:00 2001 From: keyboardsurfer Date: Wed, 16 Apr 2014 21:56:42 +0200 Subject: [PATCH] fix for adapter backed views --- .../android/widget/crouton/Manager.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/de/keyboardsurfer/android/widget/crouton/Manager.java b/library/src/main/java/de/keyboardsurfer/android/widget/crouton/Manager.java index 36959ed..42a0ad1 100644 --- a/library/src/main/java/de/keyboardsurfer/android/widget/crouton/Manager.java +++ b/library/src/main/java/de/keyboardsurfer/android/widget/crouton/Manager.java @@ -23,7 +23,6 @@ import android.os.Build; import android.os.Handler; import android.os.Message; -import android.support.v4.view.accessibility.AccessibilityEventCompat; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; @@ -31,6 +30,7 @@ import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; +import android.widget.AdapterView; import android.widget.FrameLayout; import java.util.Iterator; import java.util.Queue; @@ -196,15 +196,17 @@ private void addCroutonToView(final Crouton crouton) { if (null == croutonView.getParent()) { ViewGroup.LayoutParams params = croutonView.getLayoutParams(); if (null == params) { - params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + params = + new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); } // display Crouton in ViewGroup is it has been supplied if (null != crouton.getViewGroup()) { // TODO implement add to last position feature (need to align with how this will be requested for activity) - if (crouton.getViewGroup() instanceof FrameLayout) { - crouton.getViewGroup().addView(croutonView, params); + final ViewGroup croutonViewGroup = crouton.getViewGroup(); + if (croutonViewGroup instanceof FrameLayout || croutonViewGroup instanceof AdapterView) { + croutonViewGroup.addView(croutonView, params); } else { - crouton.getViewGroup().addView(croutonView, 0, params); + croutonViewGroup.addView(croutonView, 0, params); } } else { Activity activity = crouton.getActivity(); @@ -426,7 +428,7 @@ public static void announceForAccessibilityCompat(Context context, CharSequence if (Build.VERSION.SDK_INT < 16) { eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED; } else { - eventType = AccessibilityEventCompat.TYPE_ANNOUNCEMENT; + eventType = AccessibilityEvent.TYPE_ANNOUNCEMENT; } // Construct an accessibility event with the minimum recommended