Niestety, metoda calculateScrollXForTab()
z TabLayout jest prywatna i nie można jej zastąpić podklasami. Tak czy inaczej można skopiować TabLayout źródłowy w projekcie, a następnie ewentualnie rozszerzając go o swojej klasie, a także zmienić sposób calculateScrollXForTab()
tak:
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;
}
ta zwraca wartość limitu na lewej zakładce wybranego, następnie przewijanie jest zmuszane do tej wartości. Ekstremalne prawe zakładki pozostaną na miejscu, jeśli zostaną wybrane, ponieważ przewijanie przewija przewijanie do granic dziecka.
Próbowałem ją i działa, choć musiałem rozwiązać dwa problemy z jednym CompatTextView nie znaleziono w android.support.v7.internal.widget i sposobu setupWithViewPager()
że nie istnieje w źródle dostępnym do mnie (ja myślę o wersji)
Co masz na myśli mówiąc o keyline? –
"Keyline" to termin używany w https://www.google.com/design/spec/components/tabs.html, w bibliotece wsparcia projektowania Androida jest zadeklarowany za pomocą 'app: tabContentStart'. –