2014-03-12 4 views
0

나는 ViewPager, PagerAdapter (FragmentPagerAdapter 아님) 및 2 개의보기를 보유하고 있습니다. 두 번째보기에 몇 개의 조각을 삽입해야합니다. 문제는 FragmentManager.begin().replace(id, fragment).commit()에 컨테이너 ID가 필요하지만 PagerAdapter이 동적으로 수행되기 때문에 컨테이너 ID를 찾을 수 없다는 것입니다.안드로이드에서 ViewPager보기에서 조각을 바꾸는 방법?

답변

0

당신은 모든 어댑터처럼해야 - PagerAdapter에서 데이터 집합을 변경하고 전화

notifyDataSetChanged(); 
+0

없음 당신이 잡을하지 않았다. 보기에 단편을 삽입해야합니다. 변경된 항목에 대한보기가 변경되지 않았습니다. – 4ntoine

0

당신은 ViewPager 항목으로 사용자 정의 레이아웃 파일을해야합니다 그리고 당신은

public Object instantiateItem(View collection, int position) { 

방법을 지정합니다 PagerAdapter의 즉, 사용자 정의보기를 확장하고 내부에 조각을 추가 할 수 있습니다.

좋아 :

@Override 
     public Object instantiateItem(View collection, int position) { 
      View layout; 
      LayoutInflater mInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      switch (mItems.get(position).type) { 
      case TAB_ABOUT: 
       layout = mInflater.inflate(R.layout.detail_pager_item_about, null); 
       // Commit your fragment Here. 
// Do check if it is already there to avoid multiple commits. 
    ((ViewPager) collection).addView((View)layout,0); 
     return layout;   
} 

은보기에 조각을 추가하지 않으려면 :

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.add(CONTENT_VIEW_ID, newFragment).commit(); 
+0

불만족 스럽습니다. View 인스턴스가 있고 ViewPager에서 사용하는 데 문제가 없습니다. 문제는보기에 단편을 삽입하는 방법입니다. – 4ntoine

관련 문제