2017-11-28 20 views
0

私はviewPagerを作成して動作しますが、私の問題はページをドラッグするだけですが、タブをクリックしてページを選択したいのです。ViewPagerFragmentタブが機能しない

また、私は

enter image description here

( 'com.android.support:design:26.0.0-alpha1' コンパイル)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 ""; 
    } 

} 
} 

MainActivity

のための私のコードのための私のコードを追加します
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、onTabSelectedListener、onTabReslectedの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がFragmentActivity 私は viewPager.addOnPageChangeListener(新しいTabLayout.TabLayoutOnPageChangeListener(tabLayout))を使用してカントを拡張して使用して... 1ラインコードを忘れてしまいました。 –

+0

なぜこの行は使えないのですか? –

+0

addOnAdapterChangeListener ViewPagerでは に適用することができない(android.support.v4.view.ViewPager.OnAdapterChangeListener)(android.support.design.widget.TabLayout.TabLayoutOnPageChangeListener) –

関連する問題