# SlideAndDragListView **Repository Path**: tib/SlideAndDragListView ## Basic Information - **Project Name**: SlideAndDragListView - **Description**: 继承于Android的ListView的可拖动和滑动item的ListView---SlideAndDragListView。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://www.cnblogs.com/yydcdut/p/4737552.html - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 25 - **Created**: 2015-08-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SlideAndDragListView SlideAndDragListView,可排序、可滑动item显示”菜单”的ListView。 # Overview SlideAndDragListView(SDLV)继承于Android的ListView,SDLV可以拖动item到SDLV的任意位置,其中包括了拖动item往上滑和往下滑;SDLV可以向右滑动item,像Android的QQ那样(QQ是向左滑),然后显现出来"菜单”之类的按钮。  优秀的特性: 1. 简洁明了的拖动操作. 2. 直观流畅的滚动,拖动或滑动. 3. 支持 onItemClick 和 onItemLongClick 监听器. 4. 公开的回调事件. 5. 等等... SlideAndDragListView is useful for all kinds of prioritized lists: favorites, playlists, checklists, etc. Would love to hear about your use case or app by email. I hope you find it useful; and please, help me improve the thing! # Github https://github.com/yydcdut/SlideAndDragListView # Blog http://www.cnblogs.com/yydcdut/p/4737552.html # Widget Usage ## XML usage ``` xml ``` ## XML attributes `item_background` - item滑开那部分的背景. `item_btn1_background` - "菜单"中第一个button的背景. `item_btn1_text` - "菜单"中第一个button的text. `item_btn2_background` - "菜单"中第二个button的背景. `item_btn2_text` - "菜单"中第二个button的text. `item_btn_number` - 要显示出来的”菜单”中的button的个数,在0~2之间. `item_btn_width` - “菜单”中button的宽度. `item_btn_text_color` - "菜单"中button的字体颜色. `item_btn_text_size` - "菜单"中button的字体大小. `item_height` - item的高度. ## Listeners > SlideAndDragListView.OnListItemLongClickListener ``` java sdlv.setOnListItemLongClickListener(new SlideAndDragListView.OnListItemLongClickListener() { @Override public void onListItemLongClick(View view, int position) { } }); ``` `public void onListItemLongClick(View view, int position)` . 参数 view 是被长点击的item, 参数 position 是item在SDLV中的位置。. > SlideAndDragListView.OnListItemClickListener ``` java sdlv.setOnListItemClickListener(new SlideAndDragListView.OnListItemClickListener() { @Override public void onListItemClick(View v, int position) { } }); ``` `public void onListItemClick(View view, int position)` . 参数 view 是被点击的item, 参数 position 是item在SDLV中的位置. > SlideAndDragListView.OnDragListener ``` java sdlv.setOnDragListener(new SlideAndDragListView.OnDragListener() { @Override public void onDragViewMoving(int position) { } @Override public void onDragViewDown(int position) { } }); ``` `public void onDragViewMoving(int position)` .参数 position 是被拖动的item的现在所在的位置,同时onDragViewMoving这个方法会被不停的调用,因为一直在拖动,同时position也会改变. `public void onDragViewDown(int position)` . 参数 position 是被拖动的item被放下的时候在SDLV中的位置. > SlideAndDragListView.OnSlideListener ``` java sdlv.setOnSlideListener(new SlideAndDragListView.OnSlideListener() { @Override public void onSlideOpen(View view, int position) { } @Override public void onSlideClose(View view, int position) { } }); ``` `public void onSlideOpen(View view, int position)`. 参数 view 是滑动开的那个item, 同时 position 是那个item在SDLV中的位置。. `public void onSlideClose(View view, int position)`. 参数 view 是滑动关闭的那个item, 同时 position 是那个item在SDLV中的位置. > SlideAndDragListView.OnButtonClickListenerProxy ``` java sdlv.setOnButtonClickListenerProxy(new SlideAndDragListView.OnButtonClickListenerProxy() { @Override public void onClick(View view, int position, int number) { } }); ``` `public void onClick(View view, int position, int number)` . 参数 view 是”菜单”中被点击的button,参数 position 这个button所在的item在SDLV中的位置,参数, number 代表哪一个被点击了,因为可能会有2个. # Permission ``` xml ```