2014-11-29 4 views
8

मुझे setOnPageChangeListener लागू करने की आवश्यकता है क्योंकि मुझे ActionBar से छिपाने की आवश्यकता है यदि पहला खंड उपयोगकर्ता को दिखाया गया हो।व्यूपेजर ऑनपेज चयन नहीं किया गया कभी भी

मेरे सरल कोड:

viewPager.setOnPageChangeListener(new OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int page) { //never called 
      // TODO Auto-generated method stub 
      if(page == 0) 
      { 
       isSearch = false; 
      } 
      else 
      { 
       isSearch = true; 
      } 
      supportInvalidateOptionsMenu(); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 
viewPager.setCurrentItem(0); //not working 

पहले टुकड़ा दिखाया गया है (page == 0), तो isSearchfalse होना चाहिए लेकिन onPageSelected जब मैं यह डिबग कभी नहीं कहा जाता हो रही है।

कृपया मेरी मदद करें, आपकी मदद के लिए धन्यवाद।

नोट: मेरा एडाप्टर नहीं लागू करता OnPageChangeListener करता है। या मुझे इसे लागू करना चाहिए? क्या यह जरूरी है?

+0

आप की मदद से आप एडाप्टर निर्धारित किया है? –

+0

@GoranHoriaMihail हाँ, मैंने इसे पहले और बाद में सेट करने का भी प्रयास किया .. लेकिन कोई प्रभाव नहीं –

+1

क्या आप पेजइंडिकेटर का उपयोग कर रहे हैं ?? तो कृपया [इसे जांचें] (http://stackoverflow.com/a/12733282/2591002) –

उत्तर

20

आप Viewpager तो ViewPager की onPageChangeListener नहीं बुलाया जाता है के साथ संयोजन के रूप में PageIndicator उपयोग कर रहे हैं। आपको पृष्ठ परिवर्तनकर्ता को पेजइंडिकेटर पर सेट करना चाहिए और पृष्ठ बदलते समय इसे कॉल किया जाएगा।

indicator.setOnPageChangeListener(new OnPageChangeListener() { 

    @Override 
    public void onPageSelected(int page) { 
     if(page == 0) 
     { 
      isSearch = false; 
     } 
     else 
     { 
      isSearch = true; 
     } 
     supportInvalidateOptionsMenu(); 
    } 

    @Override 
    public void onPageScrolled(int arg0, float arg1, int arg2) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPageScrollStateChanged(int arg0) { 
     // TODO Auto-generated method stub 

    } 
}); 

आशा इस ツ

+2

बहुत बढ़िया दोस्त, :) –

संबंधित मुद्दे

 संबंधित मुद्दे