01/10/2018, 12:07
Hỏi về RecyclerView
mình đang học về recyclerView, mình đã load được data lên củng chỉnh dc animation, nhưng có 1 vần đề thế này là trong row_layout mình có ẩn đi 1 button . Mình có bắt sự kiện khi click vào row thì nó sẽ hiện cái button đó lên . Nhưng mình gặp 1 vấn đề là khi click vào nó hiện lên nhưng lúc mình vuốt xuống thì nó lại hiện ở row cúi và khi vuốt lên lại thì nó hiện về chỗ cũ , ai có kn có thể chia sẻ cho mình 1 chút để sủa không ? Thank All
Bài liên quan
Trường hợp của bạn là do khi change item recyclerView sẽ dùng lại item trước,dẫn tới bị duplicate,mình có 2 cách như sau:
2)Tạo thêm 1 trường trong model để lưu lại trạng thái,như trường hợp trên ví dụ là isClick
Sau đó trong hàm onBind thì bạn check điều kiện để ẩn/hiện button tương ứng,sau khi click thì change value isClick của model ngược lại
mình t làm trường hợp 2 tạo ra 1 flag để lưu lại trạng thái ẩn hiện nhưng vẫn bị , mình có tim hiểu trên gg thì do thang onbind lúc mình vuốt xuống thì nó lầy từ vị trí 0 tới vị trí cúi mình cho là 10 rồi vuốt ngược lại thì cái vị trí cúi 10 đó nó lại cập nhập lại thành 0 nên mới bị
nếu set flag trong model rồi set lại trong onbind thì sẽ không bị,có gì bạn đẩy code lên mình xem mới biết được
mình sửa dc rồi , bạn có thể chỉ mình sử dụng sự kiên onclick của recyclerView không của recrclerView nhé chứ không phải của adapter, mình thử bắt sự kiện nhưng nó chỉ cho sử dụng onTouch . thank
RecyclerView onClick
đây có thể là 1 cách để set cho recyclerview, mà mình vẫn set onclick cho item trong adapter được mà,miễn là lấy được các item của viewholder là được thôi
mình muốn setonclick cho recyclerview để thay đổi layout chình còn sử dụng itemclick thì chỉ thay đổi dc rowlayout thôi
thay đổi layout chính thì cũng là sử dụng điều kiện click vào 1 phần của recyclerview để thay đổi thôi mà,bạn có thể truyền vào context hoặc 1 interface cho adapter,khi click item sẽ gọi lại callback hoặc check context để gọi thẳng hàm của context
để mình thử xem sao thank
thank bạn mình làm được rồi mọi khi vẫn làm như thế dc tự nhiên hôm nay nó lại báo lỗi là view null thì ra là mình ánh xạ sai cái tên view