2012-06-27 17 views
11

Tôi có một ViewAnimator (ViewSwitcher chính xác) với hình ảnh động trong/ra liên quan đến nó và hai Views mà tôi chuyển đổi giữa các phương pháp ViewAnimator.showNext()ViewAnimator.showPrevious().Có thể nhảy thẳng đến chế độ xem thứ hai trong ViewAnimator

Có một yêu cầu trong ứng dụng của tôi đôi khi tôi cần phải bắt đầu ngay từ View thứ hai, mà không hiển thị hoạt ảnh mờ dần đi từ View đầu tiên sang thứ hai. Bất cứ ai biết nếu có một cách đơn giản để thực hiện điều này mà không cần phải rối tung xung quanh với các hình ảnh động vào/ra liên quan đến ViewAnimator của tôi?

Lưu ý: Tôi đã thử gọi ViewAnimator.setDisplayedChild(1) nhưng điều đó cũng làm sinh động quá trình chuyển đổi.

Trả lời

16

Tôi đã xem xét và chờ phản hồi nhưng tôi đoán là không thể. Vì vậy, trong trường hợp không có giải pháp tốt hơn, thiết lập của bạn ViewAnimator 's trong hình ảnh động ra/null khi bạn muốn nhảy thẳng đến một đứa trẻ đặc biệt View của ViewAnimator của bạn, như sau:

myViewAnimator.setInAnimation(null); 
myViewAnimator.setOutAnimation(null); 
myViewAnimator.setDisplayedChild(childIndex); 

Nếu có ai biết một cách tốt hơn - thay vì chơi với hình ảnh động vào/ra của ViewAnimator - hãy chia sẻ!

+1

Tôi nghĩ rằng đây là cách duy nhất, đó là một sự xấu hổ thực sự. –

7

Thật không may, không có chức năng built-in để làm điều đó, nhưng bạn có thể thêm chức năng này, mà không được công việc:

public static void setDisplayedChildNoAnim(ViewAnimator viewAnimator, int whichChild) { 
    Animation inAnimation = viewAnimator.getInAnimation(); 
    Animation outAnimation = viewAnimator.getOutAnimation(); 
    viewAnimator.setInAnimation(null); 
    viewAnimator.setOutAnimation(null); 
    viewAnimator.setDisplayedChild(whichChild); 
    viewAnimator.setInAnimation(inAnimation); 
    viewAnimator.setOutAnimation(outAnimation); 
} 
+0

Tôi đã không thử giải pháp của bạn nhưng có vẻ tốt đẹp! –

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