成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Androidrecyclerview實現拖拽排序和側滑刪除-創(chuàng)新互聯

Recyclerview現在基本已經替代Listview了,RecyclerView也越來越好用了  當我們有實現條目的拖拽排序和側滑刪除時  可以直接時候Recyclerview提供的API就可以直接實現了
先貼上主要代碼

吳興網站建設公司創(chuàng)新互聯,吳興網站設計制作,有大型網站制作公司豐富經驗。已為吳興成百上千提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的吳興做網站的公司定做!
private void initveiw() {
  ArrayList<String> items = new ArrayList<>(Arrays.asList("itme1", "item2", "itme3", "item4", "item5", "item6", "item7", "item8", "itme9", "item10", "itme11", "item12", "item13", "item14", "item15", "item16"));
  recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
  SimpleAdapter adapter = new SimpleAdapter(items);
  recyclerView.setAdapter(adapter);
  ItemTouchHelper helper = new ItemTouchHelper(new MyItemTouchCallback(adapter));
  helper.attachToRecyclerView(recyclerView);
}

public class MyItemTouchCallback extends ItemTouchHelper.Callback{

  private SimpleAdapter adapter;

  public MyItemTouchCallback(SimpleAdapter adapter) {
    this.adapter = adapter;
  }

  @Override
  public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    int dragFlag;
    int swipeFlag;
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    if (manager instanceof GridLayoutManager){
      dragFlag = ItemTouchHelper.DOWN | ItemTouchHelper.UP | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
      swipeFlag = 0;
    }else{
      dragFlag = ItemTouchHelper.DOWN | ItemTouchHelper.UP;
      swipeFlag = ItemTouchHelper.END | ItemTouchHelper.START;
    }

    return makeMovementFlags(dragFlag,swipeFlag);
  }

  @Override
  public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
    int fromPosition = viewHolder.getAdapterPosition();
    int toPosition = target.getAdapterPosition();
    if (fromPosition < toPosition ){
      for (int i = fromPosition ;i<toPosition ;i++){
        Collections.swap(adapter.getDataList(),i,i+1);
      }
    }else{
      for (int i= fromPosition; i>toPosition; i--){
        Collections.swap(adapter.getDataList(),i ,i-1);
      }
    }
    recyclerView.getAdapter().notifyItemMoved(fromPosition,toPosition);
    return true;
  }

  @Override
  public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
    int position = viewHolder.getAdapterPosition();
    if (direction == ItemTouchHelper.END | direction==ItemTouchHelper.START){
      adapter.getDataList().remove(position);
      adapter.notifyItemRemoved(position);
    }
  }

  @Override
  public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
    super.onSelectedChanged(viewHolder, actionState);
    if (actionState==ItemTouchHelper.ACTION_STATE_DRAG){
      viewHolder.itemView.setBackgroundColor(Color.BLUE);
    }

  }

  @Override
  public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    super.clearView(recyclerView, viewHolder);
    viewHolder.itemView.setBackgroundColor(0);
  }
}

當前文章:Androidrecyclerview實現拖拽排序和側滑刪除-創(chuàng)新互聯
本文URL:http://jinyejixie.com/article12/dseogc.html

成都網站建設公司_創(chuàng)新互聯,為您提供關鍵詞優(yōu)化網站設計、虛擬主機商城網站、網頁設計公司網站營銷

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)
西丰县| 彰武县| 锦屏县| 永靖县| 嵊泗县| 砀山县| 芜湖市| 太仓市| 观塘区| 小金县| 新密市| 海安县| 思南县| 仙桃市| 曲周县| 资源县| 化德县| 古丈县| 黔南| 惠州市| 搜索| 遂昌县| 定陶县| 库车县| 三河市| 龙井市| 黔江区| 江口县| 乌苏市| 临漳县| 丰原市| 肃南| 永宁县| 辉南县| 义乌市| 新乡市| 马鞍山市| 梁山县| 鄂伦春自治旗| 临武县| 哈尔滨市|