diff --git a/library/src/com/manuelpeinado/fadingactionbar/FadingActionBarHelperBase.java b/library/src/com/manuelpeinado/fadingactionbar/FadingActionBarHelperBase.java index 0721a66..ef0735f 100644 --- a/library/src/com/manuelpeinado/fadingactionbar/FadingActionBarHelperBase.java +++ b/library/src/com/manuelpeinado/fadingactionbar/FadingActionBarHelperBase.java @@ -59,6 +59,7 @@ public abstract class FadingActionBarHelperBase { private boolean mFirstGlobalLayoutPerformed; private FrameLayout mMarginView; private View mListViewBackgroundView; + private boolean mAllowHeaderTouchEvents = false; public final T actionBarBackground(int drawableResId) { mActionBarBackgroundResId = drawableResId; @@ -110,6 +111,11 @@ public final T parallax(boolean value) { return (T)this; } + public final T allowHeaderTouchEvents(boolean value) { + mAllowHeaderTouchEvents = value; + return (T)this; + } + public final View createView(Context context) { return createView(LayoutInflater.from(context)); } @@ -232,6 +238,10 @@ private View createWebView() { ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); webView.addView(mMarginView); + if (mAllowHeaderTouchEvents) { + setMarginViewTouchListener(); + } + return webViewContainer; } @@ -251,6 +261,10 @@ private View createScrollView() { mHeaderContainer.addView(mHeaderView, 0); mMarginView = (FrameLayout) contentContainer.findViewById(R.id.fab__content_top_margin); + if (mAllowHeaderTouchEvents) { + setMarginViewTouchListener(); + } + return scrollViewContainer; } @@ -279,6 +293,11 @@ private View createListView(ListView listView) { mListViewBackgroundView.setLayoutParams(params); listView.setOnScrollListener(mOnScrollListener); + + if (mAllowHeaderTouchEvents) { + setMarginViewTouchListener(); + } + return contentContainer; } @@ -356,4 +375,13 @@ private void initializeGradient(ViewGroup headerContainer) { } gradientView.setBackgroundResource(gradient); } + + private void setMarginViewTouchListener() { + mMarginView.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + return mHeaderView.dispatchTouchEvent(event); + } + }); + } }