【问题标题】:How to implement viewpager with stackview type look and feel如何实现具有 stackview 类型外观的 viewpager
【发布时间】:2015-11-23 09:01:21
【问题描述】:
【问题讨论】:
标签:
android-viewpager
stackview
【解决方案1】:
没关系,我通过实现自定义 PageTransfromer 解决了这个问题。
代码:
公共类 DepthPageTransformer 实现 ViewPager.PageTransformer {
private static final float DEFAULT_CURRENT_PAGE_SCALE = 0.8f;
private int dimen;
public void transformPage(View view, float position) {
view.setScaleX(DEFAULT_CURRENT_PAGE_SCALE);
view.setScaleY(DEFAULT_CURRENT_PAGE_SCALE);
dimen = view.getWidth();
if(position < -1) {
view.setAlpha(0);
} else if(position <= 0) {
view.setAlpha(1.0f);
view.setTranslationX(0);
view.setTranslationY(0);
} else if(position <= 1+1) {
view.setTranslationX(dimen * -position);
view.setAlpha(-0.5f * position + 1.0f);
view.setTranslationX((-dimen / 1.1F) * position);
view.setTranslationY((dimen / 9.9f)*position);
} else {
view.setAlpha(0);
}
}
}
用法:
实例化 viewpager,然后将自定义 viewpager 转换器设置为:-
viewpager.setPageTransformer(true,new DepthPageTransformer());