Skip to content

A modified version of Android's experimental StaggeredGridView. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.

Notifications You must be signed in to change notification settings

maurycyw/StaggeredGridView

Repository files navigation

StaggeredGridView

Introduction

This is a modified version of Android's experimental StaggeredGridView. The StaggeredGridView allows the user to create a GridView with uneven rows similar to how Pinterest looks. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.

Setup

To use StaggeredGridView in your projects, simply add this project to your workspace then add it as a library project to your current project.

Usage

StaggeredGridView can be added as a custom view to any layout.

Attributes supported (same behavior as GridView):

  • numColumns : determines the amount of columns to be drawn
  • drawSelectorOnTop : determine if selector should be drawn on top
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:staggered="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mainLayout">

    <com.origamilabs.library.views.StaggeredGridView
        android:id="@+id/staggeredGridView1"
        staggered:numColumns="2"
        staggered:drawSelectorOnTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

The StaggeredGridView includes its own interface's OnItemClickListener, and OnItemLongClickListener since StaggeredGridView does not extend an AdapterView. Behavior is the same.

onItemClick(StaggeredGridView parent, View view, int position, long id);

onItemLongClick(StaggeredGridView parent, View view, int position, long id);

Tests

No tests have been written however I have tested this View manually with 2.2.2+ devices. Please report any issues.

TODO:

  • implement more custom attributes to mirror GridView's attributes
  • develop tests
  • hideSelector()
  • support multiple choice mode
  • currently restoring position can result in the views to be slightly offset when user flings to the top. This is corrected by checking the offsets when position 0 is reached. Would like to dig deeper into the issue.

About

A modified version of Android's experimental StaggeredGridView. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published