最近在做一个效果,弹出列表选项,使用了一个开源库Xamarin.Forms.InputKit,其中DropDown控件用到了PopupMenu。
PopupMenu在使用过程中有一个需要注意的地方,在Android6.0以下版本中的适配问题。
在原生Android中,PopupMenu有两个:
- Android.Widget.PopupMenu
- Android.Support.V7.Widget.PopupMenu
如果使用Android.Widget.PopupMenu遇到的问题是,PopupMenu在Android6.0以下不能设置其Gravity。处理方式只能根据系统版本来分别处理:if (OS.Build.VERSION.SdkInt >= OS.BuildVersionCodes.M) { popup.Gravity = GravityFlags.Right; }
最优的解决方式当然就是使用Android.Support.V7.Widget.PopupMenu。
在Xamarin.Android中还需要注意一个问题。
经过数次测试,发现在MonoAndroid80版本中使用PopupMenu,无论是使用哪个包中的PopupMenu,无论是否设置Gravity,如果在Android6.0以下版本必然崩溃。
这时需要把MonoAndroid80升级到81及以上版本就能解决该问题!