Children 个 ViewPager

Children of ViewPager

当我尝试获取 child 的 ViewPager X 时,我总是得到奇怪的数字,而不是正确的数字。

@Override
        public void onPageScrolled(int position, float positionOffset,
                int positionOffsetPixels) {
            int realPosition = position;

            for (int i =0 ; i < getChildCount(); i++) {
                Log.d("TAG", "X: " + getChildAt(i).getX());
            }

我总是得到

D/TAG﹕ X: 41.0
D/TAG﹕ X: 1000.0
D/TAG﹕ X: 1960.0
D/TAG﹕ X: 2920.0
D/TAG﹕ X: 3880.0

如何获得当前在屏幕上可见的 children 以及如何获得它们真正的 X?

我想根据他们的位置将 Alpha 设置为 child 次观看。

尝试 ViewPager.PageTransformer 设置 alpha http://developer.android.com/training/animation/screen-slide.html

示例:

viewPager.setPageTransformer(true, new AlphaPageTransformer());

public class AlphaPageTransformer implements ViewPager.PageTransformer {
        private static final float MIN_SCALE = 0.75f;

        public void transformPage(View view, float position) {
            int pageWidth = view.getWidth();

            if (position < -1) { // [-Infinity,-1)
                // This page is way off-screen to the left.
                view.setAlpha(0);

            } else if (position <= 0) { // [-1,0]
                // Use the default slide transition when moving to the left page
                view.setAlpha(1);

            } else if (position <= 1) { // (0,1]
                // Fade the page out.
                view.setAlpha(1 - position);

            } else { // (1,+Infinity]
                // This page is way off-screen to the right.
                view.setAlpha(0);
            }
        }
    }