Skip to content

Commit 545a22a

Browse files
committed
Support FastScroller
Make AdapterWrapper extend BaseAdapter because that is what FastScroller wants.
1 parent c18d591 commit 545a22a

File tree

3 files changed

+30
-6
lines changed

3 files changed

+30
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Changelog
66

77
* Fix #77: OnClickListener in list item crashes
88
DragSortController.
9+
* Fix #81: Enabling FastScroller causes crash.
910

1011
0.6.0
1112
-----

demo/res/layout/warp_main.xml

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,26 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<merge>
3-
<include layout="@layout/hetero_main"/>
4-
</merge>
2+
<com.mobeta.android.dslv.DragSortListView
3+
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:dslv="http://schemas.android.com/apk/res/com.mobeta.android.demodslv"
5+
android:id="@android:id/list"
6+
android:layout_width="fill_parent"
7+
android:layout_height="fill_parent"
8+
android:paddingTop="0dp"
9+
android:paddingBottom="0dp"
10+
android:paddingLeft="10dp"
11+
android:layout_margin="10dp"
12+
android:dividerHeight="5dp"
13+
android:fastScrollEnabled="true"
14+
dslv:drag_enabled="true"
15+
dslv:collapsed_height="2dp"
16+
dslv:drag_scroll_start="0.33"
17+
dslv:max_drag_scroll_speed="0.5"
18+
dslv:float_alpha="0.6"
19+
dslv:slide_shuffle_speed="0.3"
20+
dslv:track_drag_sort="false"
21+
dslv:use_default_controller="true"
22+
dslv:drag_handle_id="@id/drag_handle"
23+
dslv:sort_enabled="true"
24+
dslv:remove_enabled="true"
25+
dslv:drag_start_mode="onDown"
26+
dslv:remove_mode="flingRemove" />

library/src/com/mobeta/android/dslv/DragSortListView.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -602,9 +602,8 @@ public void setMaxScrollSpeed(float max) {
602602
*/
603603
@Override
604604
public void setAdapter(ListAdapter adapter) {
605-
mAdapterWrapper = new AdapterWrapper(adapter);
606-
607605
if (adapter != null) {
606+
mAdapterWrapper = new AdapterWrapper(adapter);
608607
adapter.registerDataSetObserver(mObserver);
609608

610609
if (adapter instanceof DropListener) {
@@ -616,6 +615,8 @@ public void setAdapter(ListAdapter adapter) {
616615
if (adapter instanceof RemoveListener) {
617616
setRemoveListener((RemoveListener) adapter);
618617
}
618+
} else {
619+
mAdapterWrapper = null;
619620
}
620621

621622
super.setAdapter(mAdapterWrapper);
@@ -719,7 +720,7 @@ public View getView(int position, View convertView, ViewGroup parent) {
719720
if (child != oldChild) {
720721
// shouldn't get here if user is reusing convertViews
721722
// properly
722-
v.removeViewAt(0);
723+
v.removeViewAt(0);
723724
v.addView(child);
724725
}
725726
} else {

0 commit comments

Comments
 (0)