Android開發中,我們經常會遇到條目拖拽排序的需求,特別是在新聞類應用中就更普遍了。其實,我們在網上可以搜到許多關于拖拽排序的自定義控件,今天,為大家介紹的是一個拖拽排序庫DragGridView,庫中包含自定義控件DragGridView以及它的一個封裝對話框DragSortDialog。下面,我們就一起了解一下庫的功能及使用方式吧。
首先,我們看一下效果演示圖
DragGridView.gif
接著,介紹一下功能和使用方式
- 1.功能
主要實現條目的拖拽排序,更適用于新聞條目。 - 2.集成方式(Android Studio)
dependencies{
compile 'com.wkp:DragGridView:1.0.1'
//Android Studio3.0+可用以下方式
//implementation 'com.wkp:DragGridView:1.0.1'
}
Note:使用版本請以Github為準。
- 3.API講解
DragGridView
1.setHasDrag 設置長按拖拽是否開啟
2.setItemViews 設置控件條目
3.addItemView 添加單個條目
4.setColumnCount 設置條目列數
5.setTransitionDuration 設置拖拽動畫時長
6.setTextPadding 設置條目文本內間距
7.setTextMargin 設置條目文本外間距
8.setTextSize 設置條目文本字體大小
9.setTextColor 設置條目文本字體顏色
10.setTextNormalBackground 設置條目文本正常背景
11.setTextSelectedBackground 設置條目文本拖拽背景
12.getItem 獲取對應文本對象
13.getSortItems 獲取排序完成后的所有條目對象
14.getDefaultItems 獲取排序完成后的所有條目文本
15.setOnItemClickListener 設置條目點擊監聽
DragSortDialog
1.setTopItemViews 設置頂部條目
2.setBottomItemViews 設置底部條目
3.setTopHasDrag 設置頂部拖拽功能是否開啟
4.setBottomHasDrag 設置底部拖拽功能是否開啟
5.getTopItemViews 獲取排序后頂部條目對象
6.getTopDefaultItemViews 獲取排序后頂部條目文本
7.getTvTitle 獲取頂部標題欄
8.getTvDivision 獲取分割標題欄
9.setWidth 設置對話框寬度
10.setHeight 設置對話框高度
11.setGravity 設置對話框位置
- 4.使用示例
DragGridView布局使用示例
<com.peake.draggridview.DragGridView
android:id="@+id/dialog_dgv_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
DragSortDialog代碼使用示例
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//點擊彈出對話框
public void showDialog(View view) {
DragSortDialog dialog = new DragSortDialog(this);
dialog.setTopItemViews("ABCDEFG".split("\\B"));
dialog.setBottomItemViews("OPQRST".split("\\B"));
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
List<String> list = ((DragSortDialog) dialog).getTopDefaultItemViews();
for (String s : list) {
Log.d("MainActivity", s);
}
}
});
dialog.show();
}
}
最后,做一些補充
控件支持直接代碼創建,還有更多API請觀看DragGridView.java和DragSortDialog.java內的注釋說明。
歡迎大家使用Github地址,感覺好用請給個Star鼓勵一下,謝謝!
大家如果有更好的意見或建議以及好的靈感,請郵箱作者,謝謝!
QQ郵箱:
1535514884@qq.com
163郵箱:
15889686524@163.com
Gmail郵箱:
wkp15889686524@gmail.com