Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Xamarin Android垂直可视寻呼机_Java_C#_Android_Xamarin_Android Viewpager - Fatal编程技术网

Java Xamarin Android垂直可视寻呼机

Java Xamarin Android垂直可视寻呼机,java,c#,android,xamarin,android-viewpager,Java,C#,Android,Xamarin,Android Viewpager,我需要一个使用Xamarin的Android垂直可视页面,但解决方案不起作用。我在java中搜索了一些示例,但是有一个由git社区开发的对象完成了所有工作。不幸的是,Xamarin没有。所以,这是我的代码,它没有给我错误,但它只显示一个黑屏。没别的了 我扩展了ViewPager类 public class VerticalViewPager : ViewPager { public VerticalViewPager (Context context):base(context) {

我需要一个使用Xamarin的Android垂直可视页面,但解决方案不起作用。我在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;
    }
}
创建我的页面转换器

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;
        }
    }
}
公共类PagerTransformer:Java.Lang.Object,ViewPager.IPageTransformer{
页面宽度;
内部页面高度;
浮动YPO;
公用页变压器(){}
公共页面(视图、浮动位置){
pageWidth=视图宽度;
pageHeight=视图高度;
如果(位置<-1){
视图。Alpha=0;
} 

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

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