A GridView which can addHeaderView and addFooterView

Overview
Please follow me on GitHub, I need your support

Github: https://github.com/liaohuqiu

twitter: https://twitter.com/liaohuqiu


中文版文档

GridView with Header and Footer

Screen Shot

This library is contained by CUBE-SDK: https://github.com/etao-open-source/cube-sdk. The Demo is HERE: https://github.com/liaohuqiu/android-cube-app .

Maven

<dependency>
    <groupId>in.srain.cube</groupId>
    <artifactId>grid-view-with-header-footer</artifactId>
    <type>jar</type>
    <version>1.0.12</version>
</dependency>

Gradle

compile 'in.srain.cube:grid-view-with-header-footer:1.0.12'

Usage

GridViewWithHeaderAndFooter gridView = (GridViewWithHeaderAndFooter) v.findViewById(R.id.ly_image_list_grid);

LayoutInflater layoutInflater = LayoutInflater.from(this);
View headerView = layoutInflater.inflate(R.layout.test_header_view, null);
View footerView = layoutInflater.inflate(R.layout.test_footer_view, null);
gridView.addHeaderView(headerView);
gridView.addFooterView(footerView);

Thanks

HeaderGridView

License

Apache 2

contact or help

Please fell free to contact me if there is any problem when using the library.

Comments
  • Header View Height Changed - Doesn't Space Allocated

    Header View Height Changed - Doesn't Space Allocated

    When the header view's height is changed after the header has been added to the grid, it doesn't actually change the height of the header. The case I am using is that there is some text with only some of it displayed in the header, and when the user clicks on it in enlarges to display everything. I do this by increasing the max lines of the TextView. When the header is attached to a ListView, this works fine. When the header is attached to this GridViewWithHeaderAndFoot, the text grows but goes behind the main part of the grid since the header itself stays the exact same height. Any idea where I should start looking to fix this?

    opened by daneren2005 11
  • Footer view with match_parent width stretching under one cell not entire screen.

    Footer view with match_parent width stretching under one cell not entire screen.

    Here is my code:

    goodsGridView = (GridViewWithHeaderAndFooter) rootView.findViewById(R.id.goods_grid); LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); goodsFooterView = layoutInflater.inflate(R.layout.good_grid_footer, null); goodsFooterView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); goodsGridView.addFooterView(goodsFooterView);

    screenshot_2014-11-23-13-43-06

    margin-padding-gap 
    opened by kusraevs 11
  • I want load more data If the scroll to the bottom.

    I want load more data If the scroll to the bottom.

    hi @liaohuqiu

    I use your lib in my project .all well and good.But i want load more when scroll to gridview bottom.How am I doing? BTW i add a header and a footer then call the getHeaderViewCount() method return count is 2.I click first item (not header) position is 1 in listview adapter getview method.This seems to be not correct.

    Hope for your help.Thanks :smile:

    opened by sd6352051 9
  • Getting wrong position of the clicked item?

    Getting wrong position of the clicked item?

    I have attached a click listener but getting incorrect position when a particular grid item is clicked. My code is as follows:

    mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Media media = mMedias.get(position);
    
                    Intent i = new Intent(getActivity(), MediaDetailActivity.class);
                    i.putExtra(MediaDetailFragment.EXTRA_MEDIA, media);
                    startActivity(i);
                }
            });
    

    Can you tell me where I am going wrong?

    opened by rampatra 6
  • 配合PullToRefreshGridView使用,有向下8像素偏移

    配合PullToRefreshGridView使用,有向下8像素偏移

    我用google官方的那个代码,向下向右偏8像素,使用这个,向下偏8像素。 不知道哪里出问题了,请教~~ image

    image

    FullWidthFixedViewLayout 的mTop 和 mBottom差了8像素。 //// int realLeft = HeaderGridView.this.getPaddingLeft() + getPaddingLeft(); // Try to make where it should be, from left, full width if (realLeft != left) { offsetLeftAndRight(realLeft - left); } int realTop = HeaderGridView.this.getPaddingTop() + getPaddingTop(); ////通过这种方式解决??

    opened by kainecy 6
  • When adding a ViewPager as header, the viewpager can not scroll smoothly.

    When adding a ViewPager as header, the viewpager can not scroll smoothly.

    As the title description. But when I add this head to an original ListView, it works perfect. So I think there is maybe something conflict between these two.

    opened by lovetuzitong 5
  • addHeaderView make the list height wrong

    addHeaderView make the list height wrong

    in my gridview adding a footer working good , but when I try to add a footer and a header the gridlist height didn't full the screen as before adding the header

    in my fragment

    
       gv = (GridViewWithHeaderAndFooter) rootView.findViewById(R.id.gridView1);
    
    
            gv.addFooterView(footerView);
            gv.addHeaderView(headerView);
    
            gv.setAdapter(adapter);
    
    

    the footer layout

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="vertical"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent">
    
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp"
    
            android:gravity="center"
            android:layout_alignParentBottom="true">
    
            <ProgressBar
                style="?android:attr/progressBarStyleInverse"
    
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/moreDataProgressbar"
                android:layout_gravity="center"
                android:layout_marginRight="5dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="loading more profiles"
                android:id="@+id/loadingText"
                android:textSize="18sp"
                android:layout_gravity="center"
                android:textColor="#02ad5e"
                android:textStyle="bold"/>
        </LinearLayout>
    
    </LinearLayout>
    
    

    the header layout

    <?xml version="1.0" encoding="utf-8"?>
    
        <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:gravity="center"
           >
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Members"
                android:id="@+id/headertext"
                android:textSize="18sp"
                android:layout_gravity="center"
                android:textColor="#02ad5e"
                android:textStyle="bold"/>
        </LinearLayout>
    
    
    opened by remon 3
  • java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1

    java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1

    java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) at java.util.ArrayList.get(ArrayList.java:308) at in.srain.cube.views.GridViewWithHeaderAndFooter$HeaderViewGridAdapter.getView(GridViewWithHeaderAndFooter.java:714)

    05-12 10:49:30.335 19743-19743/com.pheth.android E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.mingqihui.android, PID: 19743 java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6588) at android.widget.GridView.layoutChildren(GridView.java:1256) at android.widget.AbsListView.onLayout(AbsListView.java:2151) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at com.pheth.android.module.pulltorefresh.view2.PullToRefreshLayout.onLayout(PullToRefreshLayout.java:560) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:550) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

    opened by danhantao 3
  • Android 2.3.7 NoSuchFiledException:mColumnWidth

    Android 2.3.7 NoSuchFiledException:mColumnWidth

    03-04 02:25:06.840: E/AndroidRuntime(625): FATAL EXCEPTION: main 03-04 02:25:06.840: E/AndroidRuntime(625): java.lang.RuntimeException: java.lang.NoSuchFieldException: mColumnWidth 03-04 02:25:06.840: E/AndroidRuntime(625): at com.huaban.android.ui.view.HeaderFooterGridView.getColumnWidthCompatible(HeaderFooterGridView.java:308) 03-04 02:25:06.840: E/AndroidRuntime(625): at com.huaban.android.ui.view.HeaderFooterGridView.getRowHeight(HeaderFooterGridView.java:337) 03-04 02:25:06.840: E/AndroidRuntime(625): at com.huaban.android.ui.view.HeaderFooterGridView.onMeasure(HeaderFooterGridView.java:106) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.support.v4.widget.SwipeRefreshLayout.onMeasure(SwipeRefreshLayout.java:559) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1456) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1456) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.View.measure(View.java:8313) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.os.Handler.dispatchMessage(Handler.java:99) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.os.Looper.loop(Looper.java:130) 03-04 02:25:06.840: E/AndroidRuntime(625): at android.app.ActivityThread.main(ActivityThread.java:3683) 03-04 02:25:06.840: E/AndroidRuntime(625): at java.lang.reflect.Method.invokeNative(Native Method) 03-04 02:25:06.840: E/AndroidRuntime(625): at java.lang.reflect.Method.invoke(Method.java:507) 03-04 02:25:06.840: E/AndroidRuntime(625): at com.android.internal.os.ZygoteInit$MethodAndArgsCall

    opened by xufan 3
  • Get original ListAdapter

    Get original ListAdapter

    It would be nice to be able to get back the ListAdapter that we provide in setAdapter. Currently we would have to use something like (SomeAdapter) ((WrapperListAdapter) getAdapter()).getWrappedAdapter() which is a bit long. Maybe GridViewWithHeaderAndFooter could have a new method, getListAdapter.

    opened by pushbit 3
  • GridViewWithHeaderAndFooter's padding not worked on FooterView

    GridViewWithHeaderAndFooter's padding not worked on FooterView

    Defined GridViewWithHeaderAndFooter in layout.xml with padding which give space for scrollbar. But the padding doesn't worked for FooterView which caused by FooterView not centered in GridView.

    opened by liushuai42 3
  • GridViewWithHeaderAndFooter when using it  with  AbsListView.OnScrollListener issue

    GridViewWithHeaderAndFooter when using it with AbsListView.OnScrollListener issue

    when scrolling a loadmore using OnScrollListener the items are disappearing note that the layout contains a framelayout always mentioning the isseue : Attempt to invoke virtual method 'void android.widget.FrameLayout.setLayoutParams(android.view.ViewGroup$LayoutParams)' on a null object reference please if someone knows how to solve it knowing that the frame layout is already defined inside my custom adapter

    opened by Anonymous123456789123 0
  • getHeaderHeight always return '0'

    getHeaderHeight always return '0'

    image

    • Java code: Log.d(LOGTAG,"header view height = " +gridView.getHeaderHeight(0));

    • log : 05-15 14:49:14.164 8976-8976/com.example.yoonc.dmyphoto D/MAINACTIVITY: header view height = 0

    As you see this result , gridview has a yellow headerText. But getHeaderHeight always return 0... Please help me...

    opened by yooncheolkim 0
  • Does not show images in Glide

    Does not show images in Glide

    1. Place the standard GridView-adapter is used in the footer (or header); 2. Add Glide to this adapter with the settings as in the code below.

    After this, a problem arises: no images are displayed

    @Override
    protected void onCreate(Bundle savedInstanceState)
    	{
    	GridViewWithHeaderAndFooter numberGridView = (GridViewWithHeaderAndFooter) findViewById(R.id.number_view);
    
    	LayoutInflater layoutIn = LayoutInflater.from(this);
    	View footerView = layoutIn.inflate(R.layout.footer_view, null);
    
    	GridView photoGridView = (GridView) footerView.findViewById(R.id.photo_view);
    	photoGridView.setAdapter(new PhotoAdapter(this, photoList)); // photoList - ArrayList<String> list of photo names
    
    	numberGridView.addFooterView(footerView);
    	numberGridView.setAdapter(null);
    	}
    
    private class PhotoAdapter extends BaseAdapter
    	{
    	Context myContext;
    	List<String> myPhoto;
    	LayoutInflater myLayout;
    	ImageView myPhotoView;
    
    	private PhotoAdapter(Context contextView, List<String> photoList)
    		{
    		myPhoto = photoList;
    		myContext = contextView;
    		myLayout = LayoutInflater.from(contextView);
    		}
    
    	@Override
    	public int getCount()
    		{
    		return myPhoto.size();
    		}
    
    	@Override
    	public Object getItem(int position)
    		{
    		return myPhoto.get(position);
    		}
    
    	@Override
    	public long getItemId(int position)
    		{
    		return position;
    		}
    
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent)
    		{
    		View view = convertView;
    		if (view == null)
    			{
    			view = myLayout.inflate(R.layout.photo_view_item, parent, false);
    			}
    
    		myPhotoView = (ImageView) view.findViewById(R.id.photo_item);
    
    		Glide
    		.with(myContext)
    		.load("http://site.ru/photos/" + getItem(position) + ".jpg")
    		.diskCacheStrategy(DiskCacheStrategy.NONE) // IMPORTANT (IT IS NECESSARY)
    		.skipMemoryCache(true) // IMPORTANT (IT IS NECESSARY)
    		.into(myPhotoView);
    
    		return view;
    		}
    	}
    
    opened by Gamletus 0
Releases(1.0.12)
Owner
Huqiu Liao
Huqiu Liao
Android ListView that mimics a GridView with asymmetric items. Supports items with row span and column span

AsymmetricGridView An Android custom ListView that implements multiple columns and variable sized elements. Please note that this is currently in a pr

Felipe Lima 1.8k Jan 7, 2023
Drag and drop GridView for Android

DynamicGrid Drag and drop GridView for Android. Depricated It's much better to use solutions based on recycler view. For example https://github.com/h6

Alex Askerov 920 Dec 2, 2022
A Paging GridView with the same behavior as PagingListView.

PagingGridView PagingGridView has the ability to add more items on it like PagingListView does. Basically is a GridView with the ability to add more i

Nicolas Jafelle 279 Dec 29, 2022
RecyclerView extension library which provides advanced features. (ex. Google's Inbox app like swiping, Play Music app like drag and drop sorting)

Advanced RecyclerView This RecyclerView extension library provides Google's Inbox app like swiping, Play Music app like drag-and-drop sorting and expa

Haruki Hasegawa 5.2k Dec 23, 2022
An Android staggered grid view which supports multiple columns with rows of varying sizes.

AndroidStaggeredGrid ##Notice - Deprecated - 09-2015 This library has been deprecated. We will no longer be shipping any updates or approving communit

Etsy, Inc. 4.8k Dec 29, 2022
An adapter which could be used to achieve a parallax effect on RecyclerView.

android-parallax-recycleview Integration Step 1. Add the JitPack repository to your build file repositories { maven { url "https://jitpack

Pedro Oliveira 1.6k Nov 17, 2022
An Android Animation library which easily add itemanimator to RecyclerView items.

RecyclerView Animators RecyclerView Animators is an Android library that allows developers to easily create RecyclerView with animations. Please feel

Daichi Furiya 11.2k Jan 5, 2023
Kotlin way of building RecyclerView Adapter 🧩. You do not have to write RecyclerView Adapters again and again and suffer from handling of different view types. Kiel will help you.

Kiel Kiel is a RecyclerView.Adapter with a minimalistic and convenient Kotlin DSL which provides utility on top of Android's normal RecyclerView.Adapt

ibrahim yilmaz 370 Jan 2, 2023
A modified version of Android's experimental StaggeredGridView. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.

StaggeredGridView Introduction This is a modified version of Android's experimental StaggeredGridView. The StaggeredGridView allows the user to create

Maurycy Wojtowicz 1.7k Nov 28, 2022
A very easy-to-use and non-intrusive implement of Swipe to dismiss for RecyclerView.

RecyclerViewSwipeDismiss A very easy-to-use and non-intrusive implement of Swipe to dismiss for RecyclerView. Preview How to use Add these lines to yo

xcodebuild 431 Nov 23, 2022
Android library to display a ListView whose cells are not rigid but flabby and react to ListView scroll.

FlabbyListView This library is not maintained anymore and there will be no further releases Android library to display a ListView which cells are not

JPARDOGO 762 Nov 23, 2022
An Android custom ListView and ScrollView with pull to zoom-in.

PullZoomView An Android custom ListView and ScrollView with pull to zoom-in. Features Set ZoomView enable Add HeaderView Custom ZoomView Parallax or N

Frank-Zhu 2.3k Dec 26, 2022
*** WARNING: This library is no longer maintained *** An easy way to add a simple 'swipe-and-do-something' behavior to your `RecyclerView` items. Just like in Gmail or Inbox apps.

SwipeToAction An easy way to add a simple 'swipe-and-do-something' behavior to your RecyclerView items. Just like in Gmail or Inbox apps. Integration

Victor Calvello 223 Nov 16, 2022
👇 Easy Google Photos style multi-selection for RecyclerViews, powered by Kotlin and AndroidX.

Drag Select Recycler View This library allows you to implement Google Photos style multi-selection in your apps! You start by long pressing an item in

Aidan Follestad 1.9k Dec 7, 2022
A drag-and-drop scrolling grid view for Android

DraggableGridView¶ ↑ a drag-and-drop scrolling grid view for Android Including in your project¶ ↑ To start using DraggableGridView: Place libs/Draggab

Tom Quinn 565 Dec 27, 2022
A RecyclerView solution, support addHeaderView、addFooterView

HeaderAndFooterRecyclerView Introduction HeaderAndFooterRecyclerView is a RecyclerView solution that supports addHeaderView, addFooterView to a Recycl

cundong 1.4k Dec 24, 2022
An Android Library that allows users to pull down a menu and select different actions. It can be implemented inside ScrollView, GridView, ListView.

AndroidPullMenu AndroidPullMenu is an Open Source Android library that allows developers to easily create applications with pull menu. The aim of this

Armando TBA 181 Nov 29, 2022
An Android GridView that can be configured to scroll horizontally or vertically

TwoWayGridView An Android GridView that can be configured to scroll horizontally or vertically. I should have posted this over a year and a half ago,

Jess Anders 656 Jan 9, 2023
Android widget with pull to refresh for all the views,and support loadMore for ListView , RecyclerView, GridView and SwipeRefreshLayout.

CommonPullToRefresh Android widget with pull to refresh for all the views,and support loadMore for ListView,RecyclerView,GridView and SwipeRefreshLayo

null 1.1k Nov 10, 2022
Android ListView that mimics a GridView with asymmetric items. Supports items with row span and column span

AsymmetricGridView An Android custom ListView that implements multiple columns and variable sized elements. Please note that this is currently in a pr

Felipe Lima 1.8k Jan 7, 2023