2015-04-27 21 views
13

Tôi đã thực hiện phóng to thu nhỏ với điều này polidea Zoomview. Tôi đã triển khai mã thu phóng pinch này trong trang phân đoạn.phóng to thu nhỏ không thu nhỏ khi di chuyển đến trang phân đoạn tiếp theo

ZoomView zoomView; 

//inside onCreateView method 

zoomView= new ZoomView(getActivity()); 
zoomView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

zoomView.addView(gridTable); 
zoomView.setRotationY(180); 
gridviewlayout.addView(zoomView); 

zoomview jar

Pinch Phóng to và Thu nhỏ đang làm việc tại bảng GridView page.But Nếu tôi zoom-in một trang và sau đó di chuyển đến đoạn page.After tiếp theo mà khi tôi quay trở lại đoạn trước trang, trang vẫn ở trạng thái được thu phóng.

Điều tôi đang cố gắng làm là đặt lại trang ở trạng thái bình thường khi tôi chuyển sang trang phân đoạn tiếp theo.

Tôi đã tìm kiếm rất nhiều mẫu. Nhưng mọi thứ đều liên quan đến Imageview.I không nhận được bất kỳ mẫu nào để thu nhỏ các đoạn trích có bố cục.

Bất cứ ai cũng có thể giúp tôi với điều này.Cảm ơn bạn.

+0

Giải thích thêm, bạn có đang sử dụng trình xem không? Có một GridView trong từng mảnh? – mmlooloo

+0

Chỉ với đoạn mã trên tôi mới có thể thực hiện một thao tác phóng to. Không thể thu nhỏ khi di chuyển đến trang phân đoạn tiếp theo. @mmlooloo – Steve

+0

'cuộn tới đoạn tiếp theo' làm cách nào bạn triển khai? bạn đang sử dụng tiện ích nào? – mmlooloo

Trả lời

4

thêm bên dưới mã để mảnh của bạn:

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if(!isVisibleToUser){ 
     if(mZoomView != null)mZoomView.zoomTo(1,0,0); 
    } 
} 
+0

bạn có thể xây dựng thêm. Tôi không thể nhận được nó. Xin vui lòng giải thích với mã cho ít nhất một mảnh. – Steve

+0

Mỗi mảnh phải thực hiện giao diện 'ZoomViewListener', sau đó tại cuộc gọi của' void onZoomStarted (float zoom, float zoomx, float zoomy); 'lưu trữ các giá trị đó ở đâu đó tại onResume kiểm tra các giá trị đó và nếu các giá trị đó không phải là núm vú giả (-1) gọi 'zoomTo (zoom nổi cuối cùng, phao cuối cùng x, phao cuối cùng y)' với các giá trị đó. – mmlooloo

+0

Bạn có thể tạo một dự án mẫu có ví dụ 3 đoạn với vấn đề của bạn và tải nó lên github, sau đó tôi sẽ cố giải quyết nó và sẽ gửi lại kết quả cho bạn sau 1 hoặc 2 ngày. – mmlooloo

1

kiểm tra liên kết này ...

ViewPager with detailed fragment lifecycle

rằng chương trình hướng dẫn để tạo listener trên Pause và Resume Listener cho mỗi đoạn. Vì vậy, bất cứ khi nào bạn thay đổi thành các đoạn khác, bạn có thể gọi thu nhỏ trong phần onPauseListener của đoạn. Hướng dẫn này làm việc cho tôi.

Hy vọng công việc này dành cho bạn.

1

override phương pháp này:

setPrimaryItem(ViewGroup container, int position, Object object) 

phương pháp này được gọi mỗi lần vị trí thay đổi. Bây giờ bạn biết đó là đoạn nhìn thấy được. điều đó có nghĩa là bạn biết những gì không nhìn thấy được nữa (yeah tôi là sherlock). Bây giờ bạn có thể thiết lập giá trị zoom của tất cả các mảnh vỡ khác. (So sánh chỉ số trước và chỉ số mới có thể?)

Nó sẽ là tốt cho bạn để giữ tham chiếu đến các mảnh vỡ của mình và thực hiện một số phương pháp cho họ như reset() or setZoom(float)

i hi vọng điêu nay co ich.

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