检测选项卡布局上的哪个位置

时间:2017-07-06 19:33:31

标签: java android

我想知道或有人给我一个想法,以检测我在标签布局上的哪个位置,我有一个标签布局,我似乎无法弄清楚我应该在哪里做我想要的,我试着在这里做在扩展的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;
}

这里我只是将代码放在每个案例中,代码不会被调用一次。任何想法??

2 个答案:

答案 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();