Reputation: 717
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
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