示例#1
0
        private StickyHeaderBuilder(Context context)
        {
            this.context = context;

            this.animator  = null;
            this.header    = null;
            this.minHeight = 0;
        }
        protected StickyHeaderView(Context context, View header, View view, int minHeightHeader, HeaderAnimator headerAnimator)
        {
            this.context         = context;
            this.header          = header;
            this.view            = view;
            this.minHeightHeader = minHeightHeader;
            this.headerAnimator  = headerAnimator;

            MeasureHeaderHeight();

            headerAnimator.SetupAnimator(header, minHeightHeader, heightHeader, maxHeaderTransaction);
        }
示例#3
0
        protected StickyHeaderView(Context context, View header, View view, int minHeightHeader, HeaderAnimator headerAnimator, bool preventTouchBehindHeader)
        {
            this.context                  = context;
            this.header                   = header;
            this.view                     = view;
            this.minHeightHeader          = minHeightHeader;
            this.headerAnimator           = headerAnimator;
            this.preventTouchBehindHeader = preventTouchBehindHeader;

            MeasureHeaderHeight();

            headerAnimator.SetupAnimator(header, minHeightHeader, heightHeader, maxHeaderTransaction);

            if (preventTouchBehindHeader)
            {
                header.Touch     += OnHeaderTouch;
                header.LongClick += OnHeaderLongClick;
            }
        }
 public StickyHeaderScrollView(Context context, View header, int minHeightHeader, HeaderAnimator headerAnimator, ScrollView scrollView)
     : base(context, header, scrollView, minHeightHeader, headerAnimator)
 {
     // scroll events
     scrollView.ViewTreeObserver.AddOnGlobalLayoutSingleFire(() => headerAnimator.OnScroll(-scrollView.ScrollY));
     scrollView.ViewTreeObserver.ScrollChanged += (sender, e) => headerAnimator.OnScroll(-scrollView.ScrollY);
 }
        public StickyHeaderScrollView(Context context, View header, int minHeightHeader, HeaderAnimator headerAnimator, ScrollView scrollView, bool preventTouchBehindHeader)
            : base(context, header, scrollView, minHeightHeader, headerAnimator, preventTouchBehindHeader)
        {
            // scroll events
            scrollView.ViewTreeObserver.AddOnGlobalLayoutSingleFire(() => headerAnimator.OnScroll(-scrollView.ScrollY));
            scrollView.ViewTreeObserver.ScrollChanged += (sender, e) => headerAnimator.OnScroll(-scrollView.ScrollY);

            // some properties
            scrollView.SetClipToPadding(false);
        }
示例#6
0
 public virtual StickyHeaderBuilder SetAnimator(Func <AnimatorBuilder> headerAnimator)
 {
     this.animator = new SimpleHeaderStickyAnimator(headerAnimator);
     return(this);
 }
示例#7
0
 public virtual StickyHeaderBuilder SetAnimator(HeaderAnimator headerAnimator)
 {
     this.animator = headerAnimator;
     return(this);
 }
        public StickyHeaderRecyclerView(Context context, View header, int minHeightHeader, HeaderAnimator headerAnimator, RecyclerView recyclerView)
            : base(context, header, recyclerView, minHeightHeader, headerAnimator)
        {
            SetupItemDecorator();

            // scroll events
            recyclerView.SetOnScrollListener(new RecyclerScrollListener(this));
        }
示例#9
0
        public StickyHeaderListView(Context context, View header, int minHeightHeader, HeaderAnimator headerAnimator, ListView listView, bool preventTouchBehindHeader)
            : base(context, header, listView, minHeightHeader, headerAnimator, preventTouchBehindHeader)
        {
            // fake header
            var lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MatchParent, heightHeader);

            fakeHeader = new Space(context)
            {
                LayoutParameters = lp
            };
            this.listView.AddHeaderView(fakeHeader);

            // scroll events
            this.listView.Scroll += (sender, e) =>
            {
                var scrolledY = -CalculateScrollYList();
                headerAnimator.OnScroll(scrolledY);
            };
        }