我想知道或有人给我一个想法,以检测我在标签布局上的哪个位置,我有一个标签布局,我似乎无法弄清楚我应该在哪里做我想要的,我试着在这里做在扩展的FragmentPagerAdapter:
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
基本上我检查我是否在第1位并做了什么,然后再做其他事情,但它不起作用,只调用一次代码和neva 这是一个扩展片段
@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 :(得分: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) {
}
});
答案 1 :(得分:0)
您可以使用以下代码获取当前项目:
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){
@Override
public void onTabSelected(TabLayout.Tab tab){
int current_position = tab.getPosition();
}
});
或:
int current_position = mViewPager.getCurrentItem();