android - 将选项卡可见性设置为零崩溃应用程序“空引用”
问题描述
我正在尝试两个隐藏两个选项卡,实际上将它们设置为状态GONE
,以便它们也不会占用选项卡栏中的空间。当我设置它时,不幸的是,我的应用程序因空引用错误而崩溃。
我使用了另一个问题的解决方案,如下所示:
tabLayout.getChildAt(1).setVisibility(View.GONE);
tabLayout.getChildAt(3).setVisibility(View.GONE);
但它使我的应用程序崩溃,这是我的 onCreate 方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_add);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
ViewPager mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
tabLayout.getChildAt(1).setVisibility(View.GONE);
tabLayout.getChildAt(3).setVisibility(View.GONE);
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
我怎样才能将它们设置为GONE
?
解决方案
//To hide the second tab
((ViewGroup) tabLayout.getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
//To hide the fourth tab
((ViewGroup) tabLayout.getChildAt(0)).getChildAt(3).setVisibility(View.GONE);
您必须配置 viewpager 以使其正常工作,因为它只隐藏选项卡。
推荐阅读
- flutter - Flutter 保存多个用户的共享偏好
- python-3.x - python解码部分十六进制字符串
- python-3.x - 使用python重新排序文本文件中的段落
- c++ - 如果它的基类不应该是抽象的,那么处理复制多态对象的虚拟方法的最佳方法是什么?
- python - python中的异步进程是否有线程化的替代进程?
- reactjs - 钩子与类组件
- javascript - 你知道我如何使用 async await 和 map 函数来更改每个循环中的变量吗?
- java - 对 JRXML 中超过 1000 列的 Oracle 错误使用 IN 子句
- macos - 如何在终端中批量重命名文件?
- python - 如何找到 3 通道图像的均值和标准差