2015-01-22 17 views
11

Có hỗ trợ trực tiếp nào cho trang trình bày để xóa/lưu trữ (từ phải sang trái hoặc trái sang phải) trên mục RecyclerView.Cách thực hiện thao tác vuốt trên mục RecyclerView mà không có lib của bên thứ 3

Và thay vì xóa/lưu trữ, tôi muốn bốn nút trong mục danh sách.

cái gì đó như https://github.com/47deg/android-swipelistview này nhưng đối với recyclerview và hỗ trợ chính thức không bất kỳ lib bên thứ 3

+0

Tôi đã tạo thư viện nhỏ sử dụng ItemTouchHelper để tạo cử chỉ dễ dàng hơn, bạn có thể tìm thấy ở đây github.com/olmur/rvtools –

Trả lời

7

Có, bạn có thể làm điều đó với ItemTouchHelper lớp do thư viện hỗ trợ cung cấp.

P.S. Tôi phải làm điều này vào ngày khác và cũng muốn tránh sử dụng lib của bên thứ 3 nếu có thể. Thư viện có thể đang làm nhiều hơn bạn cần và do đó nó có thể phức tạp hơn mức cần thiết trong trường hợp của bạn. Nó cũng có thể không cần thiết tăng số lượng phương pháp của bạn. Đây chỉ là một mẫu lý do tại sao bạn nên tránh thêm lib như là một sửa chữa nhanh chóng cho vấn đề của bạn.

CHỈNH SỬA: Tôi đã thực hiện việc này, xem điều này blog post và điều này github repo.

+0

bài đăng trên blog tuyệt vời, tuy nhiên bạn đã quản lý để thực hiện thao tác vuốt cho danh sách hành động bằng cách tiếp cận này? –

+0

Bạn không chắc mình hiểu ý của bạn là gì? Vuốt cho danh sách hành động? –

+0

Có, vuốt để hiển thị một hành động phía sau chế độ xem hàng. Chỉ tò mò hơn bất cứ thứ gì khác. –

1

Tại sao bạn không muốn sử dụng một thư viện của bên thứ 3? Nếu bạn muốn bốn nút, chỉ cần chỉnh sửa thư viện đó (bạn có thể tôn trọng điều khoản cấp phép của mình)

Tôi biết rằng câu hỏi của bạn là không sử dụng lib, nhưng tôi thấy lib này gọn nhẹ và sẵn sàng để sử dụng. Nếu bạn muốn có một cái nhìn về những gì họ làm, chỉ cần duyệt mã.

EDIT: Here bạn là ví dụ để sử dụng chế độ xem tùy chỉnh.

3

Có. Sử dụng ItemTouchHelper. Cố gắng sao chép this project và xem cách nó được sử dụng.

Đối cụ file, xem dòng 87

Đối với những người lười biếng người không muốn bấm vào liên kết, đây là cách bạn thiết lập:

ItemTouchHelper.SimpleCallback simpleCallback = 
      new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) { 
       @Override 
       public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, 
             RecyclerView.ViewHolder target) { 
        return false; 
       } 

       @Override 
       public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { 
        //do things 
       } 
      }; 

    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback); 
    itemTouchHelper.attachToRecyclerView(recyclerView); 

Các recyclerView là quan điểm nắm giữ tái chế biến.

Có các hướng khác ngoài ItemTouchHelper.RIGHT, hãy thử nghiệm.

Các vấn đề liên quan