Android-DraggableGridViewPager

使用说明:

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
@Override
protected 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();
        }
    });
 
    // ...
 
}
posted @ 2017-08-29 09:45  Holyday  阅读(365)  评论(0编辑  收藏  举报