Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance.
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.
QuickReturnAdapter
in order to use it. Just pass your own adapter to the constructor and you're done.QuickReturnAttacher.setAnimatedTransition(true)
QuickReturnAttacher.setPosition(QuickReturnListView.POSITION_BOTTOM).
AbsListView
, including ListView
and GridView
.GridView
, you have to tell QuickReturnAdapter
how many columns it has, via its constructor:public QuickReturnAdapter(final ListAdapter wrappedAdapter, final int numColumns)
Works with API Level 10 and above.
Please see the Changelog to check what's recently changed.
Heavily inspired/influenced by the nice work of Roman Nurik's and Nick Butcher's and Lars Werkman's QuickReturnListView
Code and documentation copyright 2011-2014 Felipe Lima. Code released under the MIT license.