Tôi đang cố gắng triển khai một số loại công cụ chọn bánh cho ứng dụng của mình, vì tùy chọn hiện tại dựa trên tùy chỉnh Views
hoặc ListView
cũ, vì vậy tôi muốn dựa trên giải pháp của mình trên RecyclerView
.Dọc theo chiều dọc giữa các mục đã chọn trong RecyclerView
Những gì tôi đã làm cho đến nay là để thiết lập ngay từ đầu và ở phần cuối của RecyclerView
hai View
với một kiểu khác nhau, tên PADDING_TYPE
để là người đầu tiên và mục cuối cùng được tập trung theo chiều dọc trong RecyclerView
.
recyclerView.post(new Runnable() {
@Override
public void run() {
//80dp is the height of a regular list item
int paddingHeight = ((recyclerView.getHeight()-SettingsManager.dptopixels(80))/2);
binding.getRoot().getLayoutParams().height = paddingHeight;
}
});
Bây giờ tôi đang cố gắng hiểu cách giữ mục được chọn theo chiều dọc.
gì tôi đã cố gắng cho đến nay:
1- LinearSnapHelper
LinearSnapHelper helper = new LinearSnapHelper();
helper.attachToRecyclerView(mRecyclerView);
Không làm việc như mong đợi, tôi cũng đã cố gắng để Override một số phương pháp (có thể là trong một cách sai lầm), nhưng tôi có thể 't làm cho nó tự động theo chiều dọc trung tâm lựa chọn. Và nó không đủ linh hoạt, mục được chọn "di chuyển" thay vì bị khóa vào trung tâm dọc.
2- Tuỳ chỉnh RecyclerView.OnScrollListener
Tôi cố gắng để thích nghi với mã đề xuất here, đó là cho cuộn ngang, bằng cách thay đổi trong RecyclerView.OnScrollListener
dòng
allPixelsDate += dx;
này với sự khác biệt di chuyển dọc:
allPixelsDate += dy;
Triển khai này n là gần để được làm việc, bởi vì nó chọn mục gần nhất với trung tâm theo chiều dọc của danh sách, nhưng không khóa nó vào trung tâm.
Có thể đạt được kết quả như vậy không? Làm sao?
Để rõ ràng hơn: Tôi muốn đạt được kết quả được hiển thị here lúc 1:10. Việc lựa chọn là "bị khóa" ở trung tâm.
thử mã này để tham khảo [liên kết] (http://developer.samsung.com/s-pen-sdk/samples/Circle-Launcher) – Moinkhan
Tôi đã thực hiện việc này bằng cách sử dụng https://github.com/ai212983/ android-spinnerwheel và tôi nghĩ rằng bạn cần điều này trong dọc Mannner https://github.com/Jaouan/Carousel-Browsing-Example – Nepster
bạn có thể sử dụng phương pháp này theo chiều dọc để đạt được điều này [mở này] (http://stackoverflow.com/a/38411582/2587027) – wadali