如何使用SetTranslation()来修复视图的位置?

时间:2014-03-22 22:59:40

标签: android view android-viewpager

我使用CommonsWare's ViewPager(使用相同的代码)制作一个包含6页的ViewPager,显示当前页面的上一页和下一页。

所以这就是它的外观:(第一张图片),当我在第一页和第四页从屏幕滑出/滑入传真机时,您可以看到。 (第2张图片)

enter image description here

这就是我想要的:(我只想修复第1页和第4页的位置,以便第2页进入第1页)

(第一页的位置为-1,第四页为1)

enter image description here

我只是使用SetTranslationX(float value)来表示“位置> = 1”和“位置< = -1”

我应该在SetTranslationX(float value)中添加什么来制作固定观点?

1 个答案:

答案 0 :(得分:0)

所以我设法这样做了:

通过查看JazzyViewPager's代码,我将PositionOffsetpixels用于setTranslationX(),因此以下是代码的外观:

pager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            // TODO Auto-generated method stub
            OFFSET = positionOffsetPixels;
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub

        }
    });

并且在pagetransformer中我确实喜欢这样:

if (position <= -1) {
view.setTranslationX(OFFSET);
}else if (position >=1) {
float mTrans = -view.getWidth()-pager.getPageMargin()+OFFSET;
view.setTranslationX(mTrans);

它就像一个魅力......