首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

setVisibility不适用于tabLayout - TabItem为findViewById()返回NullPointerException

setVisibility不适用于tabLayout - TabItem为findViewById()返回NullPointerException。

在Android开发中,setVisibility()方法用于设置视图的可见性。然而,对于tabLayout中的TabItem,该方法不适用,并且可能会导致NullPointerException异常。

TabLayout是一个用于在界面上显示标签页的布局控件,而TabItem则是TabLayout中的一个标签项。在使用TabLayout和TabItem时,我们通常会使用addTab()方法来添加标签页,并通过设置TabItem的布局来自定义标签的样式。

当我们尝试使用setVisibility()方法来设置TabItem的可见性时,会出现NullPointerException异常。这是因为TabItem并不是一个普通的视图控件,而是一个用于定义标签样式的布局容器。因此,我们不能直接使用setVisibility()方法来控制TabItem的可见性。

如果我们想要隐藏或显示某个标签页,可以通过操作TabLayout的Tab对象来实现。首先,我们需要获取TabLayout中的Tab对象,然后使用Tab的select()方法来选择要显示的标签页,或者使用removeTab()方法来移除不需要显示的标签页。

以下是一个示例代码,演示如何通过操作TabLayout的Tab对象来隐藏或显示标签页:

代码语言:txt
复制
TabLayout tabLayout = findViewById(R.id.tabLayout);
TabLayout.Tab tab = tabLayout.getTabAt(tabIndex); // 获取要操作的Tab对象
if (tab != null) {
    tab.select(); // 选择要显示的标签页
    // 或者使用 tabLayout.removeTab(tab); 移除不需要显示的标签页
}

在这个例子中,我们首先通过getTabAt()方法获取要操作的Tab对象,然后使用select()方法选择要显示的标签页。如果需要隐藏标签页,可以使用removeTab()方法将其从TabLayout中移除。

需要注意的是,以上示例中的tabIndex是标签页的索引,从0开始计数。你可以根据实际情况修改tabIndex的值。

总结: setVisibility()方法不适用于tabLayout中的TabItem,因为TabItem是一个布局容器而不是普通的视图控件。如果需要隐藏或显示标签页,可以通过操作TabLayout的Tab对象来实现。通过选择要显示的标签页或移除不需要显示的标签页,可以实现对标签页的控制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android TabLayout 使用进阶(含源码)

    三、App主页面 (TabLayout + TabItem + ViewPager + Fragment) 现在常规的App主页面都是底部有几个菜单,4个或者5个。...这里的实现方式其实有很多,而文本以TabLayout为主,那么自然是以TabLayout来现实了,就如我标题上说的一样,用到了,TabLayout + TabItem + ViewPager + Fragment...> 这里对TabLayout控件做了一些修改,设置点击的水波纹透明、下划线透明,选中的文字颜色蓝色,默认是灰色,和刚才创建的四个图标样式文件类似,选中时切换蓝色图片...可以看到我点击TabLayout,ViewPager就会切换,滑动ViewPager,TabLayout就会选中相应的TabItem。 这样就类似于现在的App主页面了。...= findViewById(R.id.appbar_layout); tabLayout = findViewById(R.id.tab_layout); viewPager

    3.1K33

    使用TabLayout看这篇就够了

    TabItem 在高版本的design库里已经有了TabItemTabItem是作为TabLayout的子View而配合使用的,点进去发现其实代码很简单,就是个自定义View。 ?...小 分别设置字体大中小,说实话,这玩意真的不太好用,跟其他控件比起来,这个属性设置有点绕。...不要用文本了,改成icon吧,wtf,TabItem根本没有这样的属性啊,TabLayout貌似也没有啊。怎么搞?TabLayout没有明确地提供向Tab中设置图标的途径,但是很多事情总可以另辟蹊径。...我们知道,Tab是使用adapter中的getPageTitle()方法做其显示的内容,这个方法返回类型CharSequence。...(getTabView(0)); mTabLayout.getTabAt(1).setCustomView(getTabView(1)); 这个getTabView(int i)方法是我们自己写的,用于初始化自定义

    3K30

    Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

    > TabLayout间接继承于ViewGroup,其内可包含0到n个TabItem,这个TabItem就是我们经常使用的标签,其是个自定义View ,这样我们就定义了一个包含3个标签页的TabLayout...ViewPager内部用于获取View对应的ItemInfo。...remove()不同,此时fragment的状态依然保持着,在使用attach()时会再次调用onCreateView()来重绘视图,注意使用detach()后fragment.isAdded()方法将返回...)); //TabLayout添加Tab选择监听 mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener...---- 本篇总结 本篇读者介绍了另外一种导航页切换的实现,我们使用TabLayout+ViewPager+Fragment的方式,其中读者需要重点理解以下几点 ViewPager是个ViewGroup

    1.7K10

    TabLayout+ViewPager实现切页的示例代码

    app:tabMode="" 只有两个值:fixed、scrollable 其中 fixed用于标题栏少的情况,每个Tab可以平分屏幕宽度 其中 scrollable用于标题栏多出屏幕的情况,如果标题栏少的时候用很难看...= (TabLayout) findViewById(R.id.tabs2); viewPager = (ViewPager) findViewById(R.id.viewpager);...(viewPager); tabLayout.getTabAt(1).select();//设置第一个选中 } } 2.3 字符和图片菜单栏实现 图片加汉字菜单栏,菜单栏每项都是一个视图可以自定义设计...菜单栏每项的布局文件设计: 一个图片显示和一个文字显示,定义垂直布局,其中android:layout_gravity=”center”是把控件居中,这里不写,在菜单栏显示时可能会出现错位 <?...= (TabLayout) findViewById(R.id.tabs2); viewPager = (ViewPager) findViewById(R.id.viewpager); //添加tablayout

    1.7K40

    Android TabLayout 实现底部Tab的示例代码

    当然底部Tab一般3个左右,最多不会超过5个。 效果图 下面是我使用TabLayout来实现的底部Tab, ? 实现方式也很简单,因为这里没有“小滑块”。只需要去处理,Tab的滑动和点击即可。...Context mContext; //底部Tab标题 private final String[] mTitles = {"主页", "理财", "添加", "消息", "我的"}; //返回CustomBotTabItem...return this; } //初始化Tab private void initTabLayout() { mTabLayout.setupWithViewPager(mViewPager); //第二个参数selector...(resId); tvTitle.setText(mTitles[position]); //默认第一个tab选中,设置字体选中色 if (position == 0) { tvTitle.setTextColor...private void findView() { mTabLayout = (TabLayout) findViewById(R.id.id_tab_layout); mViewPager = (ViewPager

    97840

    Android之MaterialDesign应用技术

    网上冲浪,这是一个很有意思的事情,可以看到最新的工程师的动态,最新的技术和该技术的广泛性,网上有很多人写过这个design文章,但一般都没有写滑动删除和滑动标题悬浮等功能,这个标题悬浮和那个tablayout...(View.VISIBLE); //显示,设置通道1,因为Gone以后,通道就是0了。...,onCreateViewHolder()方法是加载控件的,也就是样式,返回值 是一个对象。...实现上下滑动监听处理方法,其中的scaleX(0)和Y(0)是不显示,1则显示。两个方法都有关键作用,一个是滚动时,关心该事件,一个是开始滚动,监听该事件。...3:实现下滑动悬浮效果 悬浮效果和tablayout什么的效果是一样的,这个现象是为了让用户知道时时刻刻在浏览页面的标题是什么,增强的了用户的体验。 效果图: ?

    1.3K90
    领券