Android 在TabLayout上获得水平滚动
我想在滚动或“滑动”到表格布局中的下一个选项卡时,在两种颜色之间进行插值。要做到这一点,我需要知道用户何时在标签之间滑动。我尝试过使用TabLayout.OnScrollChangeListener,但从未调用该方法。是否有可能知道用户何时滑动到新选项卡,如果有,如何移动 编辑: 从未调用过。试试这个Android 在TabLayout上获得水平滚动,android,Android,我想在滚动或“滑动”到表格布局中的下一个选项卡时,在两种颜色之间进行插值。要做到这一点,我需要知道用户何时在标签之间滑动。我尝试过使用TabLayout.OnScrollChangeListener,但从未调用该方法。是否有可能知道用户何时滑动到新选项卡,如果有,如何移动 编辑: 从未调用过。试试这个 tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
mViewPager.setCurrentItem(tab.getPosition());
//Do whatever you want here.
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
我认为要实现你想要的,你需要一个查看页面 像这样的
ViewPager mViewPager;
TabLayout mSlidingTabs;
mSlidingTabs = (TabLayout) findViewById(R.id.tabs);
mSlidingTabs.setupWithViewPager(mViewPager);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.w(TAG, "onPageScrolled");
// do what you want
}
@Override
public void onPageSelected(int position) {
Log.w(TAG, "onPageSelected");
// do what you want
}
@Override
public void onPageScrollStateChanged(int state) {
Log.w(TAG, "onPageScrollStateChanged");
// do what you want
}
});
谢谢,但这不是只适用于选中选项卡时,而不适用于滚动选项卡时吗?我当前正在使用此方法在选项卡之间切换颜色。请尝试此代码,看看它是否滑动。如果使用ViewPager实现,对我来说效果很好。只是好奇,你在用标签库吗?谢谢,这正是我要找的。
ViewPager mViewPager;
TabLayout mSlidingTabs;
mSlidingTabs = (TabLayout) findViewById(R.id.tabs);
mSlidingTabs.setupWithViewPager(mViewPager);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.w(TAG, "onPageScrolled");
// do what you want
}
@Override
public void onPageSelected(int position) {
Log.w(TAG, "onPageSelected");
// do what you want
}
@Override
public void onPageScrollStateChanged(int state) {
Log.w(TAG, "onPageScrollStateChanged");
// do what you want
}
});