【问题标题】:Xamarin Android Vertical ViewPagerXamarin Android 垂直 ViewPager
【发布时间】:2015-01-22 15:16:30
【问题描述】:

我需要在 Android 中使用 Xamarin 的垂直 ViewPager,但该解决方案不起作用。我在 java 中搜索了一些示例,但有一个由 git 社区开发的对象可以完成所有工作。不幸的是,Xamarin 中没有。所以,这是我的代码,它不会给我错误,但它只显示黑屏。仅此而已。

我扩展了 ViewPager 类

public class VerticalViewPager : ViewPager {

    public VerticalViewPager (Context context):base(context) {

        Init ();
    }

    public VerticalViewPager(Context context, IAttributeSet attr):base(context, attr) {

        Init();
    }

    public override bool OnTouchEvent (Android.Views.MotionEvent e) {

        e.SetLocation (e.GetY (), e.GetX ());
        return base.OnTouchEvent (e);
    }

    private void Init()  {

        SetPageTransformer (true, new PagerTransformer());
        OverScrollMode = Android.Views.OverScrollMode.Never;
    }
}

并创建我的 PageTransformer

public class PagerTransformer : Java.Lang.Object, ViewPager.IPageTransformer {

    int pageWidth;
    int pageHeight;
    float yPos;

    public PagerTransformer () {}

    public void TransformPage (View view, float position) {

        pageWidth = view.Width;
        pageHeight = view.Height;

        if (position < -1)  {

            view.Alpha = 0;
        } 
        else if (position <= 1)  {

            view.Alpha = 1;
            // Counteract the default slide transition
            view.TranslationX = (pageWidth * -position);
            //set Y position to swipe in from top
            yPos = position + pageHeight;
            view.TranslationY = yPos;
        } 
        else  {

            // This page is way off-screen to the right.
            view.Alpha = 0;
        }
    }
}

在MainActivity中,我设置了onCreate方法

page = FindViewById<VerticalViewPager> (Resource.Id.vertical_pager);

显然 page 是一个 VerticalViewPager 对象。

如果我使用普通的 ViewPager,应用程序可以正常工作。关于黑屏原因的任何想法? 任何 Java 代码也很受欢迎!

谢谢

【问题讨论】:

    标签: java c# android xamarin android-viewpager


    【解决方案1】:

    黑屏的原因是您将屏幕位置设置在可见范围之外。您的可见范围是从 0 到页面高度。 试试他的:“yPos = position * pageHeight;”而不是“yPos = position + pageHeight;”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2016-05-20
      • 2014-11-30
      • 2017-10-29
      • 2013-03-11
      相关资源
      最近更新 更多