在Android中隐藏ActionBar选项卡

时间:2018-02-06 08:36:43

标签: android tabs android-actionbar

我有一个Android应用程序,它在ActionBar中显示了一些Tabs。现在我想要隐藏一个Tab,只有在Button-Click-Event(或其他)之后我想显示这个Tab。 在这个例子中,“第2节”应该在启动时不可见,按下按钮后它应该是可见的。

enter image description here

以下是当前代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    actionBar = getSupportActionBar();
    actionBar.setNavigationMode(NAVIGATION_MODE_TABS);

    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });

    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(
                actionBar.newTab()
                        .setText(mSectionsPagerAdapter.getPageTitle(i))
                        .setTabListener(this));
    }
}

如何在实时期间执行此操作?

2 个答案:

答案 0 :(得分:0)

使用

((ViewGroup) tablayout.getChildAt(0)).getChildAt(0).setVisibility(View.GONE);

答案 1 :(得分:0)

  

TabLayout是一种布局,可将其子项排列为行和列。 TableLayout由许多TableRow对象组成,每个对象定义一行。 TableLayout容器不显示其行,列或单元格的边框线。每行有零个或多个单元格;每个单元格可以容纳一个View对象。该表的列数与具有最多单元格的行数相同

TabLayoutViewgroup,就像LinearLayoutRelativeLayout一样,但它会按行和列排列其子项

这会隐藏中间标签“第2节”

((ViewGroup) tablayout.getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
//show
    ((ViewGroup) tablayout.getChildAt(0)).getChildAt(1).setVisibility(View.VISIBLE);