Tôi đã xem xét việc tạo chế độ xem danh sách khác biệt, giống như nhiều người khác và tôi bắt đầu bằng cách tìm cách mở rộng AbsListView. Theo tài liệu Android, AbsListView là:Có thể mở rộng AbsListView để thực hiện các triển khai ListView mới không?
Lớp cơ sở có thể được sử dụng để triển khai danh sách các mục được ảo hóa. Danh sách không có định nghĩa không gian ở đây. Ví dụ: subclases của lớp này có thể hiển thị nội dung của danh sách trong một mạng lưới, trong băng chuyền, dưới dạng ngăn xếp, v.v.
Sau một số nỗ lực và xem xét việc thực thi ListView, có vẻ như không thể có thể mở rộng AbsListView theo cách mà ListView thực hiện vì khớp nối của hai lớp và không có khả năng truy cập các thành viên gói nhất định. Tôi tình cờ gặp mẫu này Romain Guy:
AbsListView và AbsSpinner được thiết kế để mở rộng trong khuôn khổ . Chúng cũng có thể được mở rộng trong các ứng dụng của bên thứ 3 nhưng chúng tôi đã làm không phơi bày tất cả các trường và phương pháp được bảo vệ cần thiết. Chúng tôi muốn rất cẩn thận về cách chúng tôi hiển thị các API như vậy để không nhận được các công cụ cho các tiện ích mở rộng trong tương lai và các thay đổi nội bộ. Đề xuất hiện tại của chúng tôi là là bạn chỉ cần sao chép/dán mã bạn cần bên trong ứng dụng của bạn.
Tôi bắt đầu cố gắng làm điều này nhưng sao chép AbsListView trở thành một lỗ thỏ sao chép trong một loạt các nội dung khác và nó thực sự giống như một đề xuất thua. Tôi muốn xem liệu có ai đã thành công trong việc mở rộng AbsListView, người có thể chia sẻ phương pháp luận hay không.
[1] http://developer.android.com/reference/android/widget/AbsListView.html
[2] https://groups.google.com/forum/?fromgroups#!topic/android-developers/UhbR1tpVvF0
"nó thực sự có vẻ giống như một đề xuất thua" - đó sẽ là đánh giá của tôi về tình hình. – CommonsWare
Cảm ơn Mark. Điều đó dường như giống như phúc âm cho tôi. –
có lẽ bạn có thể cụ thể hơn một chút về ý nghĩa của "phong cách danh sách khác biệt". Bạn có nghĩa là một cái gì đó không phải là một danh sách theo chiều dọc? hoặc bạn có nghĩa là cái gì đó là dọc, nhưng có màu sắc tùy chỉnh, quan điểm, tiêu đề, vv? – mtmurdock