Giter VIP home page Giter VIP logo

mjolnirrecyclerview's Introduction

[DEPRECATED] MjolnirRecyclerView - This library is no longer maintained and it will not receive any more updates.

==========

CircleCI JCenter Method count Android Arsenal

Provides a simple way to extend the default RecyclerView behaviour with support for headers, footers, empty view, DiffUtil and ArrayAdapter like methods.

Usage

Add the library as a dependency to your build.gradle

compile 'co.infinum:mjolnirrecyclerview:version@aar'

Check the latest version here.

Features

1. Header & footer support

Add a custom number of headers and footers to MjolnirRecyclerView by using 2 simple methods from MjolnirRecyclerAdapter:

    adapter.setHeader(View view)
    adapter.setHeader(View view)

2. Empty view

Empty view support for MjolnirRecyclerView. View is automatically hidden when adapter is populated with some data, and is automatically shown once again when adapter becomes empty.

    recyclerView.setEmptyView(View view)

You can also show empty view while adapter is not set to the MjolnirRecyclerView, which is handy if you want to intialize adapter at some later point in the time.

    // show empty view if adapter is not set
    recyclerView.setEmptyView(View view, true)

3. DiffUtil

DiffUtil support for MjolnirRecyclerAdapter. Simply add DiffUtil.Callback in adapters update method:

    adapter.update(new ItemDiffUtilResult())

As DiffUtil is a blocking sync action, it's executed on the background thread inside the MjolnirRecyclerAdapter by using a AsyncTask. As a result of this approach, you need to call cancel() method on your adapter when your activity or fragment is about to be destroyed, so that the adapter is not updated if the screen has been destroyed.

    @Override
    protected void onDestroy() {
        super.onDestroy();
        adapter.cancel();
    }

4. ArrayAdapter like methods

MjolnirRecyclerAdapter has full support for ArrayAdapter methods, like add(), addAll(), reset(), remove(), set()...

Contributing

Feedback and code contributions are very much welcome. Just make a pull request with a short description of your changes. By making contributions to this project you give permission for your code to be used under the same license.

Credits

Maintained and sponsored by Infinum.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.