最近在写一个自定义的popupWindow的时候,里面嵌套recyclerView布局,recyclerView内是个自定义的布局,但是当数据过多的时候popupwindow设置在某个控件下方的时候就不准确了,会被顶上去,这样就达不到效果了,解决方法如下首先你需要自定义一个popupWindow,重写showAsDropDown方法。 直接上代码
@Override
public void showAsDropDown(View anchor) {
if(Build.VERSION.SDK_INT == 24) {
Rect rect = new Rect();
anchor.getGlobalVisibleRect(rect);
int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
setHeight(h);
}
super.showAsDropDown(anchor);
}
@Override
public void showAsDropDown(View anchor, int xoff, int yoff) {
if(Build.VERSION.SDK_INT == 24) {
Rect rect = new Rect();
anchor.getGlobalVisibleRect(rect);
int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
setHeight(h);
}
super.showAsDropDown(anchor, xoff, yoff);
}