美文网首页android
Android 版本兼容问题集锦(1)

Android 版本兼容问题集锦(1)

作者: 孙科技 | 来源:发表于2017-08-15 17:11 被阅读8次

PopupWindow在Android7.0系统中显示位置错误

Android7.0之前,在指定位置弹出popupwindow可以用showAsDropDown(View anchor, int xoff, int yoff),showAtLocation(View parent, int gravity, int x, int y)。但在android7.0上,用showAsDropDown()在popupwindow为全屏时,会有弹出位置异常情况,需用showAtLocation()才能正常显示:

一、if(Build.VERSION.SDK_INT <24)

{

dropListPopupWindow.showAsDropDown(this,0,5);

}else{// 适配 android 7.0int[] location =newint[2];

getLocationOnScreen(location);intx = location[0];inty = location[1];

Log.e(getClass().getSimpleName(),"x : "+ x +", y : "+ y);

dropListPopupWindow.showAtLocation(this, Gravity.NO_GRAVITY,0, y + getHeight() +5);

}

二、我们需要重写popWindows的showAsDropDown方法:

@OverridepublicvoidshowAsDropDown(View anchor) {if(Build.VERSION.SDK_INT >=24) {            Rect rect =newRect();            anchor.getGlobalVisibleRect(rect);inth = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;            setHeight(h);        }super.showAsDropDown(anchor);    }

我建议第二个比较好

相关文章

网友评论

    本文标题:Android 版本兼容问题集锦(1)

    本文链接:https://www.haomeiwen.com/subject/zcsvrxtx.html