2017-07-06 20 views
0

我想知道或有人給我一個想法,以檢測我在標籤佈局上的哪個位置,我有一個標籤佈局,我似乎無法弄清楚我應該做我想做的事情,我嘗試在這裏做它在擴展FragmentPagerAdapter:檢測標籤佈局上的哪個位置

@Override 
public CharSequence getPageTitle(int position) { 
    // Generate title based on item position 

    return tabTitles[position]; 
} 

基本上我檢查,如果IM在位置1,做什麼都然後去做別的事情,但它不工作,僅調用一次代碼和涅瓦河再次 和這裏是一個擴展片段

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = null; 

    switch (p) { 
     case 1: 
      view = RenderFactory.getClass("Page1", inflater, container).displayContent(); 
      break; 
     case 2: 
      view = RenderFactory.getClass("Page2", inflater, container).displayContent(); 
      break; 
     case 3: 

      view = RenderFactory.getClass("Page3", inflater, container).displayContent(); 
      break; 

    } 
    return view; 
} 

這裏我只是將代碼放入每個案例中,代碼不會多次調用。有任何想法嗎 ??

+0

做你看見我的朋友我的答案。我給你第一個正確的答案:) – Karim

回答

1

addOnTabSelectedListener嘗試。該事件處理程序爲您提供所選標籤的位置。

例子:

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 

      } 
     }); 
+0

感謝兄弟,它的工作 –

+0

不客氣。 – VIX

0

您可以使用此代碼獲取當前項目:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){ 
    @Override 
    public void onTabSelected(TabLayout.Tab tab){ 
     int current_position = tab.getPosition(); 
    } 
}); 

或:

int current_position = mViewPager.getCurrentItem();