Android-DraggableGridViewPager
- https://github.com/zzhouj/Android-DraggableGridViewPager
介绍:
仿zaker效果的拖拽排序。可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页。运行效果:
![]()
使用说明:
xml:
|
1
2
3
4
5
6
7
8
9
10
|
<com.coco.draggablegridviewpager.DraggableGridViewPager android:id="@+id/draggable_grid_view_pager" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="20dp" android:paddingLeft="20dp" android:paddingRight="60dp" android:paddingTop="20dp" ></com.coco.draggablegridviewpager.DraggableGridViewPager> |
定义adapter:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
private ArrayAdapter<String> mAdapter;// ...mAdapter = new ArrayAdapter<String>(this, 0) { @Override public View getView(int position, View convertView, ViewGroup parent) { final String text = getItem(position); if (convertView == null) { convertView = (TextView) getLayoutInflater().inflate(R.layout.draggable_grid_item, null); } ((TextView) convertView).setText(text); return convertView; }}; |
添加Listener:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
@Overrideprotected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.draggable_grid_view_pager_test); mDraggableGridViewPager = (DraggableGridViewPager) findViewById(R.id.draggable_grid_view_pager); // ... mDraggableGridViewPager.setAdapter(mAdapter); mDraggableGridViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { Log.v(TAG, "onPageScrolled position=" + position + ", positionOffset=" + positionOffset + ", positionOffsetPixels=" + positionOffsetPixels); } @Override public void onPageSelected(int position) { Log.i(TAG, "onPageSelected position=" + position); } @Override public void onPageScrollStateChanged(int state) { Log.d(TAG, "onPageScrollStateChanged state=" + state); } }); mDraggableGridViewPager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { showToast(((TextView) view).getText().toString()); } }); mDraggableGridViewPager.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { showToast(((TextView) view).getText().toString() + " long clicked!!!"); return true; } }); mDraggableGridViewPager.setOnRearrangeListener(new OnRearrangeListener() { @Override public void onRearrange(int oldIndex, int newIndex) { Log.i(TAG, "OnRearrangeListener.onRearrange from=" + oldIndex + ", to=" + newIndex); String item = mAdapter.getItem(oldIndex); mAdapter.setNotifyOnChange(false); mAdapter.remove(item); mAdapter.insert(item, newIndex); mAdapter.notifyDataSetChanged(); } }); // ...} |

浙公网安备 33010602011771号