如果只有一个片段启用,则不显示选项卡
Do Not Display Tabs if There is Only One Fragment Enabled
我有一个 activity,它有两个片段,在两个选项卡中:描述选项卡和评论选项卡。评论选项卡是可选的,因此当管理员添加描述时,他可以启用或禁用评论。如果他禁用它,我想显示描述,但让它看起来像没有标签,即。从 activity 中隐藏选项卡并仍然显示内容。
因此,如果启用了两个片段,它应该如下所示:
现在,如果我禁用第二个选项卡,我会得到这个:
但这就是我想要的:
寻呼机适配器:
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;
}
}
Activity:
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) {
}
});
当您启用唯一描述时,您可以隐藏选项卡布局,如下所示
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) {
}
});
我有一个 activity,它有两个片段,在两个选项卡中:描述选项卡和评论选项卡。评论选项卡是可选的,因此当管理员添加描述时,他可以启用或禁用评论。如果他禁用它,我想显示描述,但让它看起来像没有标签,即。从 activity 中隐藏选项卡并仍然显示内容。
因此,如果启用了两个片段,它应该如下所示:
现在,如果我禁用第二个选项卡,我会得到这个:
但这就是我想要的:
寻呼机适配器:
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;
}
}
Activity:
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) {
}
});
当您启用唯一描述时,您可以隐藏选项卡布局,如下所示
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) {
}
});