Ответ 1
К сожалению, метод calculateScrollXForTab()
TabLayout является закрытым и не заменяется подклассами. В любом случае вы можете скопировать источник TabLayout в свой проект, а затем, возможно, расширить его с помощью своего класса и изменить метод calculateScrollXForTab()
следующим образом:
private int calculateScrollXForTab(int position, float positionOffset) {
if (mMode == MODE_SCROLLABLE) {
View final selectedChild = mTabStrip.getChildAt(position);
// LoG.i ("scrollTo" String.valueOf ((int) selectedChild.getLeft()));
return (int) selectedChild.getLeft();
}
return 0;
}
Это возвращает значение предела, расположенного слева от выбранной вкладки, а затем прокрутка принудительно переходит к этому значению. Крайние правые вкладки останутся фиксированными в позиции, если они выбраны, потому что свиток зажимает прокрутку до границ ребенка.
Я пробовал, и он работает, хотя мне пришлось решить две проблемы с одним соавтором, не найденным в android.support.v7.internal.widget и методе setupWithViewPager()
, который не существует в источнике, доступном мне (я думаю вопрос версии)