最近因为项目需要所以碰到了一个需要重新排序的ListView布局,然后就去网上找了一个严振杰(noHttp的作者)写的一个demo,运行成功之后就去看代码,看了半天感觉代码的可读性很差,本来很简单的事被他封装了好几层实现,所以我就开始研究了代码了。
实际上这个可交换item位置也可以滑动删除的控件是用RecyclerView实现的。下面就给大家从代码开始分析一下实现原理。
这个RecyclerView用Studio开发的童鞋们呢就直接依赖下就好了 具体怎么使用我就不跟大家细说了 我就开始捞干货说了啊。首先看主程序的布局,很简单,我为了让大家能够看到RecyclerView我上下放了两个TextView。代码就不贴了 太占篇幅了。最后我会把我的代码分享给大家,希望大家可以看完文章。
先看效果↓
看主Activity代码,我直接贴上代码,注释我已经写的很清楚了
/** * @author 宋鑫 * Created by admin on 2017/1/3. * 主界面 * 布局很简单 */ public class MainActivity extends AppCompatActivity implements StartDragListener{ private RecyclerView myrecycler; private ItemTouchHelper touchHelper;//这个就是RecyclerView实现拖动和滑动的帮助类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 制造点假数据 */ List<User> list = new ArrayList<>(); for (int i = 0; i < 20; i++) { User u = new User(); u.setName("用户"+i); u.setPhone("1324044535"+i); u.setAddress("丰台科技园"+i+"号楼"); list.add(u); } myrecycler = (RecyclerView) findViewById(R.id.myRecycler);//实例化组件 myrecycler.setLayoutM