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);
}
}
}
当我尝试获取 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);
}
}
}