Bug 1202753 - Tabs tray (Grid): Scroll to selected tab if it is not visible. r=margaret

--HG--
extra : commitid : Cm97FTi6pCd
extra : rebase_source : 94961d50ccf77ccfcb884df4f41ab1e970630224
extra : amend_source : eccc38963aa0244ed05eb11481fe06b603d837f8
This commit is contained in:
Sebastian Kaspari 2015-10-23 12:57:17 +02:00
parent 59b814892b
commit fd13c2e2bc

View File

@ -171,9 +171,15 @@ class TabsGridLayout extends GridView
Tabs.registerOnTabsChangedListener(this);
refreshTabsData();
Tab currentlySelectedTab = Tabs.getInstance().getSelectedTab();
if (lastSelectedTabId != currentlySelectedTab.getId()) {
smoothScrollToPosition(tabsAdapter.getPositionForTab(currentlySelectedTab));
final Tab currentlySelectedTab = Tabs.getInstance().getSelectedTab();
final int position = currentlySelectedTab != null ? tabsAdapter.getPositionForTab(currentlySelectedTab) : -1;
if (position != -1) {
final boolean selectionChanged = lastSelectedTabId != currentlySelectedTab.getId();
final boolean positionIsVisible = position >= getFirstVisiblePosition() && position <= getLastVisiblePosition();
if (selectionChanged || !positionIsVisible) {
smoothScrollToPosition(position);
}
}
}