【发布时间】: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