2017-09-25 3 views
0

J'ai un ViewPager (3 éléments) avec quelques icônes. Lorsque sur le premier élément, l'icône est sélectionnée, il est possible de glisser vers l'élément suivant. Etc. Après la deuxième icône sélectionnée, il est possible d'aller au troisième élément de viewpager. J'ai un indicateur de page (points), qui est connecté avec ViewPager par setupWithViewPager. Le problème est que je veux définir cliquable sur tablayout à faux, et déverrouiller les étapes si l'icône sur viewPager est sélectionné. Maintenant, tous les "points" sont cliquables et je peux aller à tous les éléments de ViewPager.Désactiver cliquer sur tablayout, lors de la configuration avec viewpager

Je ne peux manipuler avec TabLayout que dans la fonction OnPageSelected ... Comment puis-je le modifier?

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_photo_wizard, container, false); 

    findViews(rootView); 

    setOnClickListeners(); 
    buildTypeFragmentPagerAdapter = new BuildTypeFragmentPagerAdapter(getChildFragmentManager(), state); 


    buildTypeViewPager.addOnPageChangeListener(new PageListenerAdapter() { 
     public void onPageSelected(int position) { 
      state.moveToPage(position); 
      refreshViewState(false); 
     } 
    }); 

    dotsView.setupWithViewPager(buildTypeViewPager); 


    return rootView; 
} 

Je peux mettre cliquable à false pour dotsView et il ne fonctionne pas ...

Répondre

0

essayer pour api> 24:

tabLayout.clearOnTabSelectedListeners(); 

ou pour < 24:

tabLayout.setupWithViewPager(viewPager); 

LinearLayout tabStrip = ((LinearLayout)tabLayout.getChildAt(0)); 
for(int i = 0; i < tabStrip.getChildCount(); i++) { 
    tabStrip.getChildAt(i).setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      return true; 
     } 
    }); 
} 
+0

Cela ne fonctionne pas ... Il semble que je ne peux manipuler avec des onglets que dans la fonction onPageSelected. Je ne sais pas pourquoi. – kokokd