示例#1
0
 private void AddScrollListener(ViewGroup vg, bool setForTop, bool setForBottom)
 {
     if ((!setForBottom && mTopOnScrollChangedListener == null ||
          (setForBottom && mBottomOnScrollChangedListener == null)))
     {
         ViewTreeObserver.IOnScrollChangedListener onScrollChangedListener = new DelegateScrollChangeListener
         {
             ScrollChanged = () =>
             {
                 bool hasButtons = false;
                 foreach (MDButton button in mButtons)
                 {
                     if (button != null && button.Visibility != ViewStates.Gone)
                     {
                         hasButtons = true;
                         break;
                     }
                 }
                 if (vg is WebView)
                 {
                     InvalidateDividersForWebView((WebView)vg, setForTop, setForBottom, hasButtons);
                 }
                 else
                 {
                     InvalidateDividersForScrollingView(vg, setForTop, setForBottom, hasButtons);
                 }
                 Invalidate();
             }
         };
         if (!setForBottom)
         {
             mTopOnScrollChangedListener = onScrollChangedListener;
             vg.ViewTreeObserver.AddOnScrollChangedListener(mTopOnScrollChangedListener);
         }
         else
         {
             mBottomOnScrollChangedListener = onScrollChangedListener;
             vg.ViewTreeObserver.AddOnScrollChangedListener(mBottomOnScrollChangedListener);
         }
         onScrollChangedListener.OnScrollChanged();
     }
 }
 private void AddScrollListener(ViewGroup vg, bool setForTop, bool setForBottom)
 {
     if ((!setForBottom && mTopOnScrollChangedListener == null
             || (setForBottom && mBottomOnScrollChangedListener == null)))
     {
         ViewTreeObserver.IOnScrollChangedListener onScrollChangedListener = new DelegateScrollChangeListener
         {
             ScrollChanged = () =>
             {
                 bool hasButtons = false;
                 foreach (MDButton button in mButtons)
                 {
                     if (button != null && button.Visibility != ViewStates.Gone)
                     {
                         hasButtons = true;
                         break;
                     }
                 }
                 if (vg is WebView)
                 {
                     InvalidateDividersForWebView((WebView)vg, setForTop, setForBottom, hasButtons);
                 }
                 else
                 {
                     InvalidateDividersForScrollingView(vg, setForTop, setForBottom, hasButtons);
                 }
                 Invalidate();
             }
         };
         if (!setForBottom)
         {
             mTopOnScrollChangedListener = onScrollChangedListener;
             vg.ViewTreeObserver.AddOnScrollChangedListener(mTopOnScrollChangedListener);
         }
         else
         {
             mBottomOnScrollChangedListener = onScrollChangedListener;
             vg.ViewTreeObserver.AddOnScrollChangedListener(mBottomOnScrollChangedListener);
         }
         onScrollChangedListener.OnScrollChanged();
     }
 }