mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1067388 - Scroll ensure selected tab is always fully visible (r=mcomella)
This commit is contained in:
parent
584f835024
commit
ddbeb49a8e
@ -13,6 +13,8 @@ import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.ViewTreeObserver.OnPreDrawListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -73,9 +75,21 @@ public class TabStripView extends TwoWayView {
|
||||
final int selected = getPositionForSelectedTab();
|
||||
if (selected != -1) {
|
||||
updateSelectedStyle(selected);
|
||||
ensurePositionIsVisible(selected);
|
||||
}
|
||||
}
|
||||
|
||||
private void ensurePositionIsVisible(final int position) {
|
||||
getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
|
||||
@Override
|
||||
public boolean onPreDraw() {
|
||||
getViewTreeObserver().removeOnPreDrawListener(this);
|
||||
smoothScrollToPosition(position);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private int getCheckedIndex(int childCount) {
|
||||
final int checkedIndex = getCheckedItemPosition() - getFirstVisiblePosition();
|
||||
if (checkedIndex < 0 || checkedIndex > childCount - 1) {
|
||||
|
Loading…
Reference in New Issue
Block a user