我有一个包含3个片段的ViewPager Fragment,每个片段都有一张图片作为背景和一个TextView。TextView总是在屏幕左侧绝对位置(而不是Fragment本身)。当我用手指移动片段时,它保持正确的位置,即使我移动得很快。但是当我让它滑入其他Fragment时,TextView就不能保持正确的位置,看起来像是延迟了。
它应该像这两张图片一样保持不变:
它应该像这两张图片一样保持不变:
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
SingleTabFragment singleTabFragment = (SingleTabFragment) mSectionsPagerAdapter.getRegisteredFragment(position);
TextView textView = singleTabFragment.getNonResizingTextView();
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams)textView.getLayoutParams();
marginLayoutParams.leftMargin = positionOffsetPixels;
textView.setLayoutParams(marginLayoutParams);
}
我真的不知道问题出在哪里。我尝试了多种方法,我添加了Thread.sleep(50);
来查看是否也会发生这种情况。是的,在那里也不能正常工作。我该如何解决这个问题?
编辑:
现在我已经放在中间了。但问题仍然存在。
这是它应该看起来的样子(我知道,帧数不太够。但我想你会明白我的意思):
如果我让它滑动,它看起来像这样: