ActionBar 值 addTab 的小提示

简介:

今天测试时偶然发现当程序中 addTab 后,会默认触发第一个 tab 的 onTabSelected 事件方法


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

        // Tab 按钮点击事件
        MyTabListener listener = new MyTabListener();
        // 添加页面的 Tab 按钮
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_index))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_latest))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_hot))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_tag))
                .setTabListener(listener));


发现这个问题是因为我遇到了一个奇怪的顺序问题:

在添加 Tab 之后还有 每个 tab 对应打开的 ViewPager 代码,结果每次都提示 viewPager 为 null 空指针操作了,我郁闷了好半天明明 视图对象存在却为空,后来发现原来在 addTab 的时候就会默认执行第一个 tab 的 onTabSelected 事件。

所以必须在 addTab 前写上与其相关的其他代码。




目录
相关文章
|
8月前
|
Go Android开发
Android 软键盘的确定键修改,讲的明明白白
Android 软键盘的确定键修改,讲的明明白白
|
API Android开发
Android | 通过WindowInsetsController设置系统栏颜色、Behavior、显示隐藏等
两种方式可以引入`WindowInsetsController`,一种直接通过`API`的`val controller = window.decorView.windowInsetsController`获取,注意该方法在`API30`及以上才有
1107 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
390 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
|
Android开发
Android CheckBox修改选中颜色并去除选中时的水波纹效果
Android CheckBox修改选中颜色并去除选中时的水波纹效果
717 0
Android CheckBox修改选中颜色并去除选中时的水波纹效果
|
iOS开发 开发者
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
234 0
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
|
Android开发 数据格式 XML
Android弹出选项框及指示箭头动画选择
 Android弹出选项框及指示箭头动画选择 Android原生的Spinner提供了下拉列表选项框,但在一些流行的APP中,原生的Spinner似乎不太受待见,而通常会有下图所示的下拉列表选项框:初始化状态: 点击弹出下拉选择选项框: 选中后: 注意那个指示箭头,如果把这个控件写的比较精细的话,在下拉-选择-复位过程中箭头是应该有动画旋转效果的。
2092 0
|
测试技术 Android开发 容器
View位置参数与滑动全解析
一. View位置参数与坐标分析 View是Android中所有控件的基类,是一种界面层的控件的一种抽象,代表一个控件,常见的获取位置参数的方法有以下三种: 1.View的getTop(),getLeft(), getRight(),getBottom() View的位置主要由它的四个顶点来决定,分别对应View的四个属性:top,left,right,bottom,其中top是左上角纵坐标 ,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。
1158 0
|
Android开发 iOS开发
Android点击EditText文本框之外任何地方隐藏键盘的解决办法
1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏   加上id和clickable=true   然后在onCreate里,添加onClick事件的监听: @Overri...
907 0