QuickReturn

Android Arsenal

Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance.

Demo

video thumbnail

Usage

In your build.gradle file:

dependencies {
    // ...
    compile 'com.felipecsl.quickreturn:library:1.5.1'
}

In your activity class:

private ListView listView;
private ArrayAdapter<String> adapter;
private QuickReturnAttacher quickReturnAttacher;
private TextView quickReturnTarget;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    // your listView :)
    listView = (ListView) findViewById(R.id.listView);

    // the quick return target view to be hidden/displayed
    quickReturnTarget = (TextView) findViewById(R.id.quickReturnTarget);

    // your inner adapter
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);

    // Wrap your adapter with QuickReturnAdapter
    listView.setAdapter(new QuickReturnAdapter(adapter));

    // Attach a QuickReturnAttacher, which takes care of all of the hide/show functionality.
    quickReturnAttacher = QuickReturnAttacher.forView(listView);

    // Add a quick return targetView to the attacher.
    // You can pass a position argument (POSITION_TOP or POSITION_BOTTOM).
    // You can also optionally pass the size of the target view, which will be used to 
    // offset the list height, preventing it from hiding content behind the target view.
    quickReturnAttacher.addTargetView(quickReturnTarget, QuickReturnTargetView.POSITION_TOP, 50);

    // If you need to add an OnScrollListener to the listView, this is the correct
    // way to do so.
    // You have to add it on the QuickReturnAttacher instead
    // of adding on the listView directly.
    quickReturnAttacher.addOnScrollListener(this);
}

Check the sample app for an example of usage.

Features

public QuickReturnAdapter(final ListAdapter wrappedAdapter, final int numColumns)

Works with API Level 10 and above.

Known issues/Caveats

Changelog

Please see the Changelog to check what's recently changed.

Credits

Heavily inspired/influenced by the nice work of Roman Nurik's and Nick Butcher's and Lars Werkman's QuickReturnListView

Contributing

Copyright and license

Code and documentation copyright 2011-2014 Felipe Lima. Code released under the MIT license.