2012-05-13 21 views
6

Tôi đang sử dụng ViewPager với PageAdapter (từ gói tương thích v4) để vuốt giữa danh sách ngang hộp. Vấn đề là hộp thứ hai của tôi từ trang đầu tiên là hộp đầu tiên trong trang thứ hai (trực quan và khái niệm). Một cái gì đó như thế này:Vuốt một nửa trang trong một ViewPager (từ gói tương thích)

enter image description here

Con đường tôi đang làm bây giờ nó hoạt động. Tuy nhiên, điều này trở nên kỳ lạ bởi vì ở giữa swipe có một tình huống mà cùng một hộp xuất hiện hai lần (như nó được hiển thị trong hình ảnh).

Có cách nào để vuốt chỉ một nửa trang?

EDIT:

Các hộp là một khái niệm trừu tượng. Trong thực tế, mỗi hộp là ListView và tôi tạo các trang khác nhau chỉ cần thay đổi bộ điều hợp của mỗi ListView.

Trả lời

26
  1. Tạo một mảnh mỗi trang
  2. Override getPageWidth() trong PageAdapter để hiển thị nhiều hơn một trang

Code:

@Override 
public float getPageWidth(int position) { 
    float nbPages = 2; // You could display partial pages using a float value 
    return (1/nbPages); 
} 
+0

Đây phải là câu trả lời được chấp nhận! Cảm ơn rất nhiều! –

+0

Đã thay đổi nó, Xin lỗi vì "chậm trễ" :) –

+0

hoàn hảo! làm việc tốt cho tôi. đi vào chi tiết giá trị mặc định cho getPageWidth là 1f (tức là 100% diện tích màn hình). Vì vậy, bạn có thể đặt '1/(no_of pages_per_screen_you_want)' –

2

Có, sử dụng chiều rộng con bằng một nửa trang. Do đó, swiping, gọi con tiếp theo, sẽ vuốt một nửa trang. Chúc may mắn!

Chỉnh sửa: Đã kiểm tra lại bản phác thảo của bạn, hãy thử triển khai 1st, 2nd, 3rd ... làm các child khác nhau. (Tôi dự đoán hầu hết các giải pháp trong khi giả định nó sẽ phản ứng như GalleryView)

+0

Các hộp là đơn giản hóa. Trên thực tế mỗi hộp là một 'ListView' và mỗi" hộp "có một bộ chuyển đổi. Dù sao, làm thế nào tôi có thể đặt chiều rộng con là một nửa trang? –

+0

@TiagoAlmeida. Hóa ra, con của ViewPager luôn lấp đầy các giới hạn bên trong của ViewPager. Vì vậy, tôi giải quyết vấn đề thông qua một mẹo nhỏ. Đây là mã nguồn https://github.com/MonkeyPerformingCodingAction/ViewPagerMultipleChildTrick –

+0

Đã thấy mã của bạn. Cảm ơn. Tuy nhiên, là kinda lỗi: p (bạn có thể vuốt chỉ một bên, kinda khôn lanh, có lẽ tôi đã không giải thích vấn đề của tôi phải không?). Tôi muốn có thể viết như tôi bây giờ, nhưng tôi muốn một cái gì đó giống như một chồng chéo của 2 trang khi tôi swiping. Cách bạn đã làm nó, bạn có 2 khu vực mà bạn có thể swipe trên. Cảm thấy kí quái. –

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