2017-08-01 92 views
0

我是新來的viewPagers。這是我的問題。我有一個viewPager包含3個片段,在一個活動內。我有一個下一個按鈕,根據不同的片段觸發不同的操作。目前我在申請方法如下:如何在viewpager中獲取當前顯示的片段

btnNext.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     if(viewPager.getCurrentItem() == 0){ 
      mViewPager.setCurrentItem(getItem(+1), true); 
     }else if(viewPager.getCurrentItem() == 1){ 
      // trigger something 
     } 
    } 
}); 

當我在位置0,如果我點擊下一步按鈕,viewPager揮筆到第二個片段和兩個條件被觸發!難道它不是第一個嗎?如何針對相應的片段位置一次觸發一個動作?任何幫助將不勝感激。

+0

如果'viewPager.getCurrentItem()'返回0,則只會執行'mViewPager.setCurrentItem(getItem(+1),true);'將被執行,而不是'//觸發something'處的代碼,那裏必須有別的東西在那裏 – lelloman

+0

當viewpager轉到位置0到位置1時,它也執行位置1的動作。奇怪是不是? –

+0

你能否發佈更多的代碼? – lelloman

回答

0

你可以嘗試這樣的事情:

btnNext.setOnClickListener(new OnClickListener() { 

@Override 
     public void onClick(View view) { 
     if(viewPager.getCurrentItem() == 0){ 
      viewPager.setCurrentItem(viewPager.getCurrentItem() + 1,true); 
     } 
     else if(viewPager.getCurrentItem() == 1){ 
      // trigger something 
     } 
     } 
    }); 
+0

感謝您的快速響應。試過這個,但仍然得到同樣的結果。 :( –

+0

您是否嘗試清理該項目並重新構建它?嘗試使現金無效並重新啓動。 –

+0

是的,如果出現其他問題,我會讓您 –

0

在聽衆進行操作回調方法

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     //Do it here 
    } 

    @Override 
    public void onPageSelected(int position) { 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
}); 

請讓我知道,如果它幫助。

+1

這與問題有什麼關係? – lelloman