如果仅启用了一个片段,则不显示选项卡

问题描述 投票:0回答:1

我有一个活动有两个片段,在两个选项卡中:description选项卡和注释选项卡。 “注释”选项卡是可选的,因此当管理员添加说明时,他可以启用或禁用注释。如果他禁用它我想显示描述,但让它看起来像没有标签,即。隐藏活动中的选项卡,仍然显示内容。

因此,如果两个片段都已启用,它应如下所示:

enter image description here

现在,如果我禁用第二个标签,我会得到这个:

enter image description here

但这就是我想要的:

enter image description here

寻呼机适配器:

class RestauranPagerAdapter extends FragmentStatePagerAdapter {
private int mNumOfTabs;

    RestauranPagerAdapter(FragmentManager fm, int NumOfTabs) {
        super(fm);
        this.mNumOfTabs = NumOfTabs;
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
            case 0:
                return new RestauranFragmentDescription();
            case 1:
                return new RestauranFragmentComments();
            default:
                return null;
        }
    }

    @Override
    public int getCount() {
        return mNumOfTabs;
    }
}

活动:

TabLayout tabLayout = findViewById(R.id.RestauranTabs);
tabLayout.addTab(tabLayout.newTab().setText(R.string.description));
// tabLayout.addTab(tabLayout.newTab().setText(R.string.comments));
if (!Restauran.getComments_enabled()) {
    tabLayout.addTab(tabLayout.newTab().setText(R.string.comments));
}
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);

final ViewPager viewPager = findViewById(R.id.RestauranViewpager);
final RestauranPagerAdapter adapter = new RestauranPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(3);

FloatingActionButton fabGoToMap = findViewById(R.id.fabGoToMap);
fabGoToMap.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

    }
});
java android android-fragments fragment android-pageradapter
1个回答
1
投票

如果启用了唯一的描述,则可以隐藏选项卡布局,如下所示

tabLayout.setVisibility(View.GONE);

所以你的代码应该是这样的

TabLayout tabLayout = findViewById(R.id.RestauranTabs);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);

//adding the default one
tabLayout.addTab(tabLayout.newTab().setText(R.string.description));

if (!Restauran.getComments_enabled()) {
    tabLayout.addTab(tabLayout.newTab().setText(R.string.comments));
}else{
    tabLayout.setVisibility(View.GONE);
}

//rest goes as it is
final ViewPager viewPager = findViewById(R.id.RestauranViewpager);
final RestauranPagerAdapter adapter = new RestauranPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(3);

FloatingActionButton fabGoToMap = findViewById(R.id.fabGoToMap);
fabGoToMap.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

    }
});
© www.soinside.com 2019 - 2024. All rights reserved.