diesersamat
diesersamat

Reputation: 717

Children of ViewPager

When I'm trying to get child's X of ViewPager I always get strange numbers, not correct ones.

@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());
            }

I always get

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

How to get children which are currently visible on screen and how to get their real X's?

I want to set Alpha to child views depending on their position.

Upvotes: 1

Views: 175

Answers (1)

Piyush Malaviya
Piyush Malaviya

Reputation: 1091

Try ViewPager.PageTransformer for setting alpha http://developer.android.com/training/animation/screen-slide.html

Example:

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);
            }
        }
    }

Upvotes: 1

Related Questions