一个Android ViewGroup,实现了一个拖放移动项目的分页网格。支持 Android 2.2 (API 8) 以上。

用法:

定义一个适配器符合接口 PagedDragDropGridAdapter.java

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
public interface PagedDragDropGridAdapter {
 
    // Automatic child distribution
    public final static int AUTOMATIC = -1;
 
    // Delete drop zone location TOP
    public final static int TOP = 1;
 
    // Delete drop zone location BOTTOM
    public final static int BOTTOM = 2;
 
    /**
     * Used to create the paging
     *
     * @return the page count
     */
    public int pageCount();
 
    /**
     * Returns the count of item in a page
     *
     * @param page index
     * @return item count for page
     */
    public int itemCountInPage(int page);
 
    /**
     * Returns the view for the item in the page
     *
     * @param page index
     * @param item index
     * @return the view
     */
    public View view(int page, int index);
 
    /**
     * The fixed row count (AUTOMATIC for automatic computing)
     *
     * @return row count or AUTOMATIC
     */
    public int rowCount();
 
    /**
     * The fixed column count (AUTOMATIC for automatic computing)
     *
     * @return column count or AUTOMATIC
     */
    public int columnCount();
 
    /**
     * Prints the layout in Log.d();
     */
    public void printLayout();
 
    /**
     * Swaps two items in the item list in a page
     *
     * @param pageIndex
     * @param itemIndexA
     * @param itemIndexB
     */
    public void swapItems(int pageIndex, int itemIndexA, int itemIndexB);
 
    /**
     * Moves an item in the page on the left of provided the page
     *
     * @param pageIndex
     * @param itemIndex
     */
    public void moveItemToPreviousPage(int pageIndex, int itemIndex);
 
    /**
     * Moves an item in the page on the right of provided the page
     *
     * @param pageIndex
     * @param itemIndex
     */
    public void moveItemToNextPage(int pageIndex, int itemIndex);
 
 
    /**
     * deletes the item in page and at position
     *
     * @param pageIndex
     * @param itemIndex
     */
    public void deleteItem(int pageIndex, int itemIndex);
 
    /**
     * Returns the delete drop zone location. 
     *
     * @return TOP or BOTTOM.
     */
    public int deleteDropZoneLocation();
 
    /**
     * Tells the grid to show or not the remove drop zone when moving an item
     */
    public boolean showRemoveDropZone();
}

layout example.xml

1
2
3
4
<ca.laplanete.mobile.pageddragdropgrid.PagedDragDropGrid xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

ExampleActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
setContentView(R.layout.example);
PagedDragDropGrid gridview = (PagedDragDropGrid) findViewById(R.id.gridview);      
gridview.setAdapter(new ExamplePagedDragDropGridAdapter(this));
 
/* Optionally set an onClickListener */
gridview.setClickListener(this);
 
/* Optionally set an setOnPageChangedListener */
gridview.setOnPageChangedListener(new OnPageChangedListener() {           
    @Override
    public void onPageChanged(PagedDragDropGrid sender, int newPageNumber) {
            Toast.makeText(ExampleActivity.this"Page changed to page " + newPageNumber, Toast.LENGTH_SHORT).show();               
        }
    });
創作者介紹

資訊園

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()