2014-07-19 3 views
0

ViewPager 사용. 어댑터 PageStateAdapter에 대한 메소드 notifyDataSetChanged()를 호출하기 위해 모든 페이지를 갱신합니다. ViewPager의 현재 페이지 만 업데이트하는 방법은 무엇입니까?ViewPager에서 현재 페이지 만 업데이트합니다.

onCreateView :

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View myView = inflater.inflate(R.layout.my_layout, container, false); 
    MyPageAdapter myAdapter = new MyPageAdapter(getChildFragmentManager(), true); 
    ViewPager myPager = (ViewPager) myView.findViewById(R.id.my_pager); 
    myPager.setAdapter(myAdapter); 
    myPager.setCurrentItem(0); 
} 

PageAdapter :

// 
    private class MyPagerAdapter extends FragmentStatePagerAdapter { 
     private MyFragment[] fragments; 


     public MyPagerAdapter(FragmentManager fm) { 
      super(fm); 

      fragments = new MyFragment[] { new Fragment1(), new Fragment2(), new Fragment3() }; 
     } 

     @Override 
     public Fragment getItem(int i) { 
      return fragments[i]; 
     } 

     @Override 
     public int getCount() { 
      return fragments.length; 
     } 

     @Override 
     public void restoreState(Parcelable state, ClassLoader loader) { 

     } 
    } 
// 
+0

사용'의 SetTag() 태그를 설정하는 '방법을 방문 할 수 있습니다 자세한 내용은 Tag

@Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } 

를 확인할 수 있습니다 TabSelectedTag.

public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) { TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mActionBar.addTab(tab); notifyDataSetChanged(); } 

다음 설정 특정 페이지의 경우 findViewWithTag()를 사용하여 페이지를 식별하십시오. – dreamcoder

+0

나는 이것을하기 위해 코드를 작성해봤을 때 이미 많은 시간을 보냈지 만 작성 방법을 이해하지 못해서 매우 감사 할 것입니다. 부디. –

답변

0

은 현재 페이지가 adapter 클래스 addTab() 방법을 추가 찾을 수 있습니다. 그 방법은 당신이 thisthis 링크

관련 문제