2013-03-26 25 views
5

Xin lỗi nếu điều này đã được hỏi trước đó, nhưng tôi đã cố gắng googling chủ đề mà không có bất kỳ kết quả tốt. Về cơ bản, tôi đang cố gắng tìm thay thế cho tiện ích Thư viện mà Google đã quyết định ngừng sử dụng. Cho đến nay tôi có các ứng viên sau:Lựa chọn thay thế cho android.widget.Gallery (không phải ứng dụng Thư viện)

  1. ViewPager. Thật không may (theo như tôi biết), bạn chỉ có thể hiển thị một lần xem một lần. Tôi biết ai đó đã đăng một giải pháp cho việc này tại đây: https://gist.github.com/devunwired/8cbe094bb7a783e37ad1. Nhưng tôi đang gặp vấn đề với cách tiếp cận này. Trên điện thoại của tôi, ba hình ảnh được hiển thị (theo chiều ngang). Phần lớn nhất bên trái là & nhất là tĩnh, trong khi phần giữa là có thể cuộn được (giống như những gì ViewPager sẽ làm). tức là phần lớn nhất bên trái & hầu hết hình ảnh bên phải không cuộn khi tôi cuộn ViewPager. Vì vậy, tôi phải từ chối giải pháp này.

  2. GridView. Có vẻ tốt, nhưng có vẻ như GridView được thiết kế để có thể cuộn ngang theo chiều ngang & theo chiều dọc. Tôi chỉ muốn một hàng và cuộn theo chiều ngang. Theo tôi biết, Thư viện không được thiết kế với ý nghĩ này.

  3. HorizontalScrollView. Một số khác mà Google đã đề xuất trong Javadocs (ngoài ViewPager). Có vẻ như là một người tốt để sử dụng, nhưng ... nếu tôi hiểu nó một cách chính xác, sử dụng cách tiếp cận này tất cả các nội dung sẽ được instantiated lên phía trước. Không có tải chậm ..

Vì vậy, tôi bối rối ngay tại đây. Có vẻ như giải pháp tốt nhất là sử dụng ViewPager chỉ với một Chế độ xem cùng một lúc (không mong muốn cho những gì tôi muốn) hoặc gắn với Thư viện.

Mọi người nghĩ gì?

Cảm ơn trước!

+0

http://code.google.com/p/android-ui-utils/downloads/detail?name=CarouselExample.zip. Carousel 3d với các bản vẽ. – Raghunandan

Trả lời

-2

android.support.v4.view.ViewPager là câu trả lời cuối cùng.

Bạn có thể hiển thị bất kỳ số lượng trang nào (View s), tất cả phụ thuộc vào số PagerAdapter. Nó có một phương thức .getPageWidth(position), được gọi cho mỗi trang. Ví dụ: nếu nó trả về 0,5, trang sẽ chỉ bằng một nửa chiều rộng của ViewPager.

Không gắn bó với Gallery vì có sự cố rò rỉ bộ nhớ.

+1

Xin chào. Có, tôi biết phương thức getPageWidth. Thật không may nó cho thấy xem hiện tại bên trái, không phải ở giữa (mà tôi nghĩ là khá gây hiểu nhầm). Ngoài ra, tôi có một onPageChangeListener() để hiển thị một số văn bản cho trang hiện tại. Dường như tôi không thể 'kích hoạt' vài lần xem cuối cùng, nếu tất cả các khung nhìn đã được hiển thị. Ví dụ: giả sử màn hình có thể hiển thị 5 mục cùng một lúc. Khi người dùng cuộn đến trang cuối cùng (ví dụ: trong tổng số 28 mục), thì trang cuối cùng sẽ hiển thị mục 26-28. Nhưng tôi không thể làm cho trang 'thay đổi' thành mục 27 & 28, vì chúng đã được hiển thị. Tôi hy vọng điều đó đúng –