如何在Android的竖向ViewPager中去除淡入淡出动画

3

上面是我的问题截图。我想在向上和向下滑动时去除不透明度。当我向下滑动时,当前页面会变成透明的。我需要去除这种透明度。我没有扩展ViewPager,而是扩展了activity。有人能给我解决这个问题的方法吗?
public class VerticalViewPager extends Activity  {

private static final float MIN_SCALE = 0.75f;
PagerAdapter adapter;
private static final float MIN_ALPHA = 0.75f;
private boolean a;






@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.verticalviewpager);

    fr.castorflex.android.verticalviewpager.VerticalViewPager verticalViewPager = (fr.castorflex.android.verticalviewpager.VerticalViewPager) findViewById(R.id.verticalviewpager);


    adapter = new MyCustomAdapter(VerticalViewPager.this, SplashScreen.newsidArray, SplashScreen.newsdescArray, SplashScreen.newstitleArray,
            SplashScreen.newsimageArray, SplashScreen.newsdateArray, SplashScreen.newsauthorArray, SplashScreen.newsurlArray);
    verticalViewPager.setOffscreenPageLimit(1);
    verticalViewPager.setAdapter(adapter);

    verticalViewPager.setPageTransformer(false, new PageTransformer() {


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

            if (position <= -1.0F) {
                view.setAlpha(1);
                Log.e("1", "test1");
            } else if (position < 0F) {
                view.setAlpha(1);
                Log.e("2", "test2");
            } else if (position >= 0F) {
                view.setAlpha(0.9F - position);
                view.setTranslationY((int) ((float) (pageHeight) * -position));
                Log.e("3", "test3" + position);
            } else if (position > 1.0F) {
                view.setAlpha(1);
                // view.setTranslationX(position < 0 ? 0f : -pageHeight * position);

                Log.e("4", "test4");
            }


        }
    });


}


}

alpha 的值从 0 变为 1,因此将所有 (view.setAlpha(0);) 设置为 (view.setAlpha(1);) —— 尝试一下看是否有帮助。 - Tasos
你试过这个 android:overScrollMode="never" 吗? - Rahul
如果我改成(view.setAlpha(1);),同样的淡入淡出动画也会发生。 - developer
@Rah,我试过了,对我没用。 - developer
1
你有收到开发者的回复吗? - Shubham
2个回答

0

请尝试这个。 并确认未在页面布局(例如布局XML)中使用setAlpha()

verticalViewPager.setPageTransformer(false, new ViewPager.PageTransformer() {

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

            if (position >= 0) {
                view.setTranslationY(position < 0 ? 0f : -pageHeight * position);
            }
        }
    });

1
我需要堆栈转换效果,就像重叠布局一样。 - developer
你找到任何解决方案了吗? - Mohd Sakib Syed

0
我明白了,你需要为正在进行动画的视图设置背景。默认情况下它是透明的。
android:background="#FFFFFF"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接