使用android.support:design:23.0.0。 setOnTabSelectedListener仅在我单击选项卡时触发,但是当我滑动时它不会被ViewPager触发。
让我举个例子:
public void setTabs() {
tabs = (TabLayout) findViewById(R.id.tabs);
tabs.setupWithViewPager(pager);
for (int i = 0; i < tabs.getTabCount(); i++) {
TabLayout.Tab tab = tabs.getTabAt(i);
tab.setCustomView(pagerAdapter.getTabView(i));
}
tabs.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
tabPosition = tab.getPosition();
Toast.makeText(getApplicationContext(), ""+tabPosition,Toast.LENGTH_SHORT).show();
if (tabPosition == 0) {
}
if (tabPosition == 1) {
}
if (tabPosition == 2) {
}
if (tabPosition == 3) {
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
来自pagerAdapter的getTabView方法:
public View getTabView(int position) {
View v = LayoutInflater.from(getApplicationContext()).inflate(R.layout.custom_tab, null);
// TextView tv = (TextView) v.findViewById(R.id.tabTextView);
// tv.setText(tabTitles[position]);
ImageView img = (ImageView) v.findViewById(R.id.tabImageView);
img.setImageResource(imageResId[position]);
return v;
}
仅在点击时才会在滑动时显示Toast。它适用于旧的22.2.1 revison。是什么导致了这个问题?感谢。
答案 0 :(得分:2)
答案 1 :(得分:0)
现在已经修复了新版本(23.0.1)。