안녕하세요. 오늘은 개발하다 알게된 사소한 것들을 블로깅 해봅니다. ViewPager 를 한번만 로딩하고 싶을 때는 ViewPager에서 제공하는 setOffscreenPageLimit 라는 함수를 사용하면 됩니다.

ViewPager _viewPager  = (ViewPager)findViewById(R.id.viewPager);
_viewPager.setOffscreenPageLimit(3);

예를 들면 3이라고 셋팅하면 페이지3개를 미리 로딩하겠다는 의미 입니다. 물론 Fragment 가 3개 있어야 겠죠? 그리고, Fragment 가 바뀔 때마다 ActionBar의 Item을 바꾸고 싶을 때가 있는데요. 저 같은 경우는 CustomActionBar 여서 고생을 좀 했습니다^^; Main FragmentActivity 에서 바꿀려다 보니 죽어라 해도 안바뀌더군요. viewpager의 getCurrentItem. 이 함수에 엄청 속았는데요. 현재 item을 가져오질 않아요 ㅠㅠ 여러 페이지가 있을 경우 지 멋대로 더군요. 그래서 선택한 것이 Fragment를 상속받은 class 의 onCreateView 에서

setHasOptionMenus(true);

이렇게 설정하시고 onCreateOptionsMenu 를 오버라이드 합니다. 그리고 여기서 보여주고싶은 item을 visibility를 VISIBLE로 설정합니다. Fragment의 경우 FragmentActivity 가 Parent 인데, 아래와 같이 사용해서 FragmentActivity를 상속받는 클래스를 받아옵니다.

ParentFragmentActivity activity = (ParentFragmentActivity)getActivity();

이런식으로 받아오는 것이죠. 이상입니다.
Posted by 자바리즘
,