当我旋转设备时,如果我选择了除第一个或最后一个之外的某个标签,它会向我显示标签的错误位置。
但是当我做一个小小的触摸手势时,它会更新自己。你知道怎么解决这个问题。
答案 0 :(得分:5)
这很简单,见下文
getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
getViewTreeObserver().removeGlobalOnLayoutListener(this);
} else {
getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
currentPosition = pager.getCurrentItem();
currentPositionOffset = 0f; // ----> just put this line
scrollToChild(currentPosition, 0);
}
});
答案 1 :(得分:1)
当我删除调用方法setPageMargin()
时,它适用于我。