2013-07-05 30 views
8

Câu hỏi: Cách xem Chế độ xem hiện tại của một ViewPager FragmentStatePagerAdapter?Android: ViewPager FragmentStatePagerAdapter hiện tại Xem

  1. Tôi đã dành gần 24 giờ cho việc này và tìm kiếm ở khắp mọi nơi để có giải pháp phù hợp.
  2. Nhận vị trí hiện tại thật dễ dàng, tôi đã nhận được điều đó. Điều này có được hiện tại Xem.
  3. FragmentStatePagerAdapter là bắt buộc, không phải PagerAdapter.

    • This solution gợi ý setTagfindViewWithTag qua instantiateItem(View container, int position). Điều này là dành cho PagerAdapter.
    • Tuy nhiên trong FragmentStatePagerAdapter các instantiateItemViewGroup param khôngXem param: instantiateItem(**ViewGroup** container, int position)

Vì vậy, tôi hy vọng nó không phải là không thể, phải không? Hãy giúp tôi!

Trả lời

4

Bạn có thể sử dụng thủ thuật setTag với chế độ xem bạn đang quay lại phương thức instantiateItem của mình.

Ở đây, tôi đang sử dụng một ViewPager với PagerAdapter, nhưng tôi nghĩ ý tưởng này cũng có thể làm việc cho bạn.

Vì vậy, khi bạn đang instantiating quan điểm của bạn (trong PagerAdapter phương pháp này cũng là instantiateItem (ViewGroup container, int position)), bạn nên sử dụng setTag để nhìn của bạn.

Như thế này:
view.setTag("view" + position);
return view;

Vì vậy, khi bạn cần giao diện hiện tại , bạn nên làm điều này: View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem());, nơi pager là ViewPager, mà bạn có thể nhận được thông qua nó bằng cách thông số từ Hoạt động của bạn cho bộ điều hợp.

+0

xin lỗi vì trả lời muộn và cảm ơn sự giúp đỡ. Làm thế nào bạn có được 'xem' trong 'view.setTag()' của bạn trong khi param là 'ViewGroup container'? – jerrytouille

+0

Xin lỗi vì câu trả lời thậm chí sau này. Trên thực tế, chế độ xem mà tôi đang nói đến là chế độ xem bạn quay lại vào cuối ** instantiateItem **. –