2

동일한 xml 레이아웃을 사용하는 8 개의 조각으로 ViewPager를 만들었습니다. 그러나 다른 부분에서 다른 내용을 사용하고 싶습니다. 특정 조각을로드 할 수 있도록 조각의 ID를 가져와야합니다.현재 조각의 ID를 어떻게 가져 옵니까?

나는 FragmentPagerAdapter에 준 getItem (INT 위치) 방법에

extras.putInt(Globals.KEY_CATEGORY_POSITION, position); 
fragment.setArguments(extras); 

을 시도했습니다.

그런 다음 Fragment 클래스에서 조각의 위치를 ​​가져옵니다. 이 작업을 수행 할 때 각 조각의 위치를 ​​인쇄 할 때 0에서 7로 이동하지만 모두 7부터 증가하여 모두 동일한 조각이됩니다.

각 조각마다 ID를 가져 오는 다른 방법이 있습니까?

+0

ViewPager에서 태그 속성을 사용하여 조각을 식별 할 수 있습니다. –

답변

3

가 아주 좋은 예입니다 내부 :

https://github.com/JakeWharton/ActionBarSherlock/blob/master/actionbarsherlock-samples/fragments/src/com/actionbarsherlock/sample/fragments/FragmentPagerSupport.java

당신이 조각 만드는 :

 Bundle args = new Bundle(); 
     args.putInt("num", num); 
     f.setArguments(args); 

그 다음에 단편 :

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mNum = getArguments() != null ? getArguments().getInt("num") : 1; 
    } 
+0

완벽하게 작동했습니다. 정말 고맙습니다! –

0

던져이 당신의 FragmentPagerAdapter :

다음
public Fragment getActiveFragment(ViewPager container, int position) { 
    String name = makeFragmentName(container.getId(), position); 
    return mFragmentManager.findFragmentByTag(name); 
} 

private static String makeFragmentName(int viewId, int index) { 
    return "android:switcher:" + viewId + ":" + index; 
} 
관련 문제