2017-07-13 4 views
1

Swipe fonctionne sur TabLayout le clic ne fonctionne pas? Comment ajouter un écouteur de clic sur TabLayout?Android Tab Onclick listener

intérieur Activité

viewPager = (ViewPager) findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 


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

    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
    tabLayout.addOnTabSelectedListener(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) { 

     } 
    }); 

class ViewPagerAdapter extends FragmentPagerAdapter { 

    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 

} 

setupViewPager private void (ViewPager viewPager) {

adaptateur ViewPagerAdapter = new ViewPagerAdapter (getSupportFragmentManager());

adapter.addFragment(new TabOneFragment(), "TAB1"); 

    adapter.addFragment(new TabTwoFragement(), "TAB2"); 

    viewPager.setAdapter(adapter); 

} 

mise en page des fichiers xml

<android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="fixed" 
     app:tabGravity="fill"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

comment puis-je ajouter onclick sur les onglets? s'il vous plaît aider !!

+0

ma version des bibliothèques 25.3.1 –

+0

android: élévation = "6DP" nécessaire pour un clic pourquoi? –

Répondre

0

œuvres de lui pour moi

ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 

ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
viewPager.setAdapter(adapter); 

SearchFragment searchFragment = new SearchFragment(); 
MyApplyFragment myApplyFragment = new MyApplyFragment(); 

adapter.addFragment(searchFragment, "SearchFragment"); 
adapter.addFragment(myApplyFragment, "MyApplyFragment"); 

adapter.notifyDataSetChanged(); 
tabLayout.setupWithViewPager(viewPager); 

class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getItemPosition(Object object) { 
      return super.getItemPosition(object); 
     } 

    }