Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨。
鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章。
一、准备。
1.需求问题
初步:实现列表的拖拽效果(可参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)。
(提前说明一下,本文不是完全按照Music中实现的,代码实现方式做了一些调整,去掉来很多无关的东西,方便大家理解,效果上也修改成了另外一种 个人认为是更简单更高效的一套。)
拓展:借鉴上一篇文章Android学习系列(9)--App列表之分组ListView,实现分组列表的拖拽效果。
下面以初步实现为例子,逐步展开实现步骤。
2.搭建主界面DragListActivity.java和主布局drag_list_activity.xml。
view sourceprint?01 public class DragListActivity extends Activity {
02
03 //数据列表
04 private List<String> list = null;
05
06 //数据适配器
07 private DragListAdapter adapter = null;
08
09 //存放分组标签
10 public static List<String> groupKey= new ArrayList<String>();
11 //分组一
12 private List<String> navList = new ArrayList<String>();
13 //分组二
14 private List<String> moreList = new ArrayList<String>();
15
16 @Override
17 public void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.drag_list_activity);
20
21 //初始化样本数据
22 initData();
23
24 //后面会介绍DragListView
25 DragListView dragListView = (DragListView)findViewById(R.id.drag_list);
26 adapter = new DragListAdapter(this, list);
27 dragListView.setAdapter(adapter);
28 }
29 }
3.列表项的布局drag_list_item.xml。
view sourceprint?01 <?xml version="1.0" encoding="utf-8"?>
02 <!-- 强调一点,使用相对布局 -->
03 android:layout_width="fill_parent"
04 android:layout_height="wrap_content">
05 <TextView
06 android:id="@+id/drag_list_item_text"
07 android:layout_width="wrap_content"
08 android:layout_height="@dimen/drag_item_normal_height"
09 android:paddingLeft="5dip"
10 android:layout_alignParentLeft="true"
11 android:layout_centerVertical="true"
12 android:
相关新闻>>
- 发表评论
-
- 最新评论 更多>>