All Projects → SalmanZach → SmartStickyHeader

SalmanZach / SmartStickyHeader

Licence: other
A Custom Header View With Multiple Items to make selection from categories

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to SmartStickyHeader

Groupedrecyclerviewadapter
GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。
Stars: ✭ 1,163 (+3130.56%)
Mutual labels:  recyclerview, sticky
Swiperecyclerview
🍈 RecyclerView侧滑菜单,Item拖拽,滑动删除Item,自动加载更多,HeaderView,FooterView,Item分组黏贴。
Stars: ✭ 5,174 (+14272.22%)
Mutual labels:  recyclerview, headerview
Android-HeaderAndFooterRecyclerView
Let RecyclerView support add HeaderView and FooterView.
Stars: ✭ 36 (+0%)
Mutual labels:  recyclerview, headerview
Lrecyclerview
RecyclerView下拉刷新,自动加载更多;仿IOS侧滑Item删除菜单(盼望大家扩展更多功能)
Stars: ✭ 2,466 (+6750%)
Mutual labels:  recyclerview, headerview
BaseRecyclerViewAdapter
RecyclerView通用适配器
Stars: ✭ 14 (-61.11%)
Mutual labels:  recyclerview
InstantRecyclerView
A library that helps to implement a complex list with RecyclerView.(RecyclerView使用的封装与优化,帮助你快速利用RecyclerView构建复杂列表)
Stars: ✭ 22 (-38.89%)
Mutual labels:  recyclerview
android-file-manager
A File Manager for Android
Stars: ✭ 19 (-47.22%)
Mutual labels:  recyclerview
Lazyrecycleradapter
极简通用的RecyclerAdapter,入侵性低,支持一个列表多种Item类型,无需维护和编写Adapter代码,快速集成拥有点击,动画,自定义刷新,自定义加载更多,自定义空页面显示,通用分割线,动态绑定等高复用,你只需要编写维护Holder代码。
Stars: ✭ 251 (+597.22%)
Mutual labels:  recyclerview
Modular2Recycler
Modular²Recycler is a RecyclerView.Adapter that is modular squared.
Stars: ✭ 72 (+100%)
Mutual labels:  recyclerview
MultiTypeAdapter
RecyclerView通用多类型适配器MultiTypeAdapter,以布局文件为单位更细粒度的条目复用。
Stars: ✭ 18 (-50%)
Mutual labels:  recyclerview
AutoPlayVideoRecyclerView
Android library to auto play video from url in Recyclerview.
Stars: ✭ 44 (+22.22%)
Mutual labels:  recyclerview
ConcatAdapter-sample
Load more recyclerview android using ConcatAdapter | Sample to practice RecyclerView ConcatAdapter
Stars: ✭ 26 (-27.78%)
Mutual labels:  recyclerview
FastWaiMai
仿写美团外卖电商项目
Stars: ✭ 123 (+241.67%)
Mutual labels:  recyclerview
RecyclerviewNestedRecyclerview
An example of a recyclerview nested recyclerview
Stars: ✭ 31 (-13.89%)
Mutual labels:  recyclerview
HoveringCallback
Drag & drop item decorator for RecyclerView with support for highlighting hovered items.
Stars: ✭ 15 (-58.33%)
Mutual labels:  recyclerview
Nytimes App
🗽 A Simple Demonstration of the New York Times App 📱 using Jsoup web crawler with MVVM Architecture 🔥
Stars: ✭ 246 (+583.33%)
Mutual labels:  recyclerview
Vitrin
A simple app that shows categories, subcategories and items.
Stars: ✭ 70 (+94.44%)
Mutual labels:  recyclerview
stickyard
Make your React component sticky the easy way
Stars: ✭ 83 (+130.56%)
Mutual labels:  sticky
XTableView
一个基于RecyclerView+Scroller实现的二维表格组件,同时支持侧滑菜单、拖动调整列表顺序等拓展功能。A two-dimensional table view, base on recyclerview, both support to side slide menu、drag item and more.
Stars: ✭ 15 (-58.33%)
Mutual labels:  recyclerview
recyclerview-selection-demo
A simple Android project that demonstrates the usage of the androidx.recyclerview.selection support library
Stars: ✭ 27 (-25%)
Mutual labels:  recyclerview

SmartStickyHeader

ic_launcher

A Custom Header View With Multiple Items to make selection from categories.

smartstickyheader styletwo

Android API 15+

Stick With ScrollView

Stick With RecyclerView

Example.

Make A SmartStickyAnimator By Using Default one.

 final SmartBaseHeaderAnimator animator = new StickyAnimatorDefault() {

        @Override
        public AnimatorBuilder getAnimatorBuilder() {
        
        //set Views on header for animate.            
        
            final View imageOne, imageTwo, imageThree, imageFour, imageFive, logo, foreground;
            imageOne = getHeader().findViewById(R.id.image_one);
            imageTwo = getHeader().findViewById(R.id.image_two);
            imageThree = getHeader().findViewById(R.id.image_three);
            imageFour = getHeader().findViewById(R.id.image_four);
            imageFive = getHeader().findViewById(R.id.image_five);
            logo = getHeader().findViewById(R.id.logo);
            foreground = getHeader().findViewById(R.id.foreground);

         //setUp final positions.

            int space = (headerImage.getWidth()) / 5;
            return AnimatorBuilder.create()
                    .applyTranslation(imageOne, new Point((space - imageOne.getWidth()) / 2, 0))
                    .applyTranslation(imageTwo, new Point(space + ((space - imageOne.getWidth()) / 2), 0))
                    .applyTranslation(imageThree, new Point((2 * space) + ((space - imageOne.getWidth()) / 2), 0))
                    .applyTranslation(imageFour, new Point((3 * space) + ((space - imageOne.getWidth()) / 2), 0))
                    .applyTranslation(imageFive, new Point((4 * space) + ((space - imageOne.getWidth()) / 2), 0))
                    .applyTranslation(logo, new Point(-headerLayout.getWidth() / 2, 0))
                    .applyFade(logo, 0)
                    .applyFade(foreground, 1);
        }
    };

then make a Builder and stick to a scroller(ScollView, RecyclerView), add Header View and finally animator.

            SmartStickyBuilder
            // scorller can be a ScrollView or RecyclerView
            
            .stickTo(scroller)
            .setHeader(headerLayout)
            
            //here you can add touch on header 
            
            .setHeaderTouchListener
            .minHeightHeader(getResources().getDimensionPixelSize(R.dimen.header_height))
            .animator(animator)
            .build();

you can add TouchListener on HeaderView

 public interface StickyHeaderTouchListener {
  void onHeaderScrolled();
   void onHeaderClicked();
  }

License

Copyright 2017 Salman Zach

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].