android - 在 Tablayout tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() 方法不起作用
问题描述
我在活动中有三个带有片段的选项卡,但是方法 addOnTabSelectedListener 不起作用,我的片段工作正常,当我用来调试时,我也有 viewPager,它没有进入方法内部
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
Intent intent = getIntent();
pos = intent.getIntExtra("position",0);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
if (tab.getPosition() == 1) {
tabLayout.getTabAt(pos).select();
tabLayout.setBackgroundColor(ContextCompat.getColor(Shop.this,
R.color.white));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(Shop.this,
R.color.white));
}
} else if (tab.getPosition() == 2) {
/* toolbar.setBackgroundColor(ContextCompat.getColor(Shop.this,
android.R.color.white));*/
tabLayout.setBackgroundColor(ContextCompat.getColor(Shop.this,
android.R.color.white));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(Shop.this,
android.R.color.white));
}
} else {
/* toolbar.setBackgroundColor(ContextCompat.getColor(Shop.this,
R.color.white));*/
tabLayout.setBackgroundColor(ContextCompat.getColor(Shop.this,
R.color.white));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(Shop.this,
R.color.white));
}
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
解决方案
你可以试试这个方法吗
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(
new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//for selected tab, write your code here...
}
});
有关详细而清晰的解释,请访问此链接上的 TabSelected Selected Not Called
推荐阅读
- python - 如何结合数据框(熊猫)列在 Seaborn 箱形图中绘制置信区间?
- c# - C# ExcelDataReader.Exceptions.HeaderException: '无效的文件签名。'
- php - 如何将 TAB 复制到剪贴板
- r - 如何在 R 中使用置信区间格式化 beta0 和 beta1?
- flutter - Flutter:从另一个类将 BuildContext 设置为 null
- bash - 在某些目录末尾添加点的脚本
- jquery - 强制从链接下载pdf,但在iframe中嵌入pdf而不下载
- flutter - 颤振:断言失败:布尔表达式不能为空
- git - 永远使用同一个本地分支可以吗
- c++ - 当不存在 xvalue 时,移动语义如何应用于以下代码段?