2017-11-28 3 views
0

저는 viewPager를 만들고 작동합니다. 내 문제는 페이지를 드래그 할 수 있지만 탭을 클릭하여 페이지를 선택할 수 있습니다.ViewPagerFragment 탭이 작동하지 않습니다.

은 내가 MainActivity

에 대한 FragmentPagerAdapter

public class Pager extends FragmentPagerAdapter { 

public Pager(FragmentManager fm) { 

    super(fm); 
} 

@Override 
public Fragment getItem(int position) { 

    switch (position) 
    { 
     case 0: 
      return First_Activity.newInstance(); 

     case 1: 
      return Second_Activity.newInstance(); 

     case 2: 
      return Third_Activity.newInstance(); 

     default: 
      return First_Activity.newInstance(); 
    } 
} 

@Override 
public int getCount() { 

    return 3; 
} 

// --->>>Title Pages<<<--- 
@Override 
public CharSequence getPageTitle(int position) { 

    switch (position) 
    { 
     case 0: 
      return " page 1 "; 

     case 1: 
      return " page 2 "; 

     case 2: 
      return " page 3 "; 

     default: 
      return ""; 
    } 

} 
} 

내 코드에 대한

enter image description here

내 코드 ('com.android.support:design:26.0.0-alpha1'컴파일) 추가

final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
    Pager adapter = new Pager(getSupportFragmentManager()); 
    viewPager.setAdapter(adapter); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout); 
    tabLayout.setupWithViewPager(viewPager); 

} 
} 
+1

tablayout.addOnTabSelectedListener를 사용하면 onTabSelected, onTabSelected, onTabReselected의 3 가지 대체 메소드가 구현됩니다. –

+0

귀하의 tabLayout ID를 확인하십시오 – Bek

+0

귀하의 레이아웃을 공유 – Bek

답변

1

먼저이 줄을 onC에 선언하십시오.) (reate :

viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 

Here , tabLayout is layout of your tabs you created in layout. 

지금이 기능을 추가

TabLayout.OnTabSelectedListener tabListener = new TabLayout.OnTabSelectedListener() 
    { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab)   
     { 
      viewPager.setCurrentItem(tab.getPosition()); 
     } 
     @Override 
     public void onTabUnselected(TabLayout.Tab tab) 
     { } 
     @Override 
     public void onTabReselected(TabLayout.Tab tab) 
     { } 
}; 

이 코드는 확실히 당신을 위해 작동합니다.

+0

내가 한 줄 코드를 잊지 ... 난 공용 클래스 MainActivity 내가 viewPager.addOnPageChangeListener (새 TabLayout.TabLayoutOnPageChangeListener (tabLayout))를 사용하지 못할 FragmentActivity 확장 사용; –

+0

왜이 줄을 사용할 수 없습니까 ?? –

+0

addOnAdapterChangeListener ViewPager에 가 에 적용 할 수 없다 (android.support.v4.view.ViewPager.OnAdapterChangeListener) (android.support.design.widget.TabLayout.TabLayoutOnPageChangeListener) –

관련 문제