Java Xamarin Android垂直可视寻呼机
我需要一个使用Xamarin的Android垂直可视页面,但解决方案不起作用。我在java中搜索了一些示例,但是有一个由git社区开发的对象完成了所有工作。不幸的是,Xamarin没有。所以,这是我的代码,它没有给我错误,但它只显示一个黑屏。没别的了 我扩展了ViewPager类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) {
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);