如上图所示,我是希望用户点击左上角的 “全部行业” 按钮,在标题栏的底部弹出popWindow的
cb_selectShopCondition.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) { popWindow.showAsDropDown(linearLayout_title);
}
}
});
效果如下图:
在Android7.0之前的系统中一直没有什么问题,当使用Android7
.0系统的时候,出现了展示位置不正确的bug,如下图所示:
想要popWindows正常在Android7.0系统正常显示,我们需要重写popWindows的showAsDropDown方法:
/**
* 商家列表条件筛选
* SHI
* 2016-12-26 18:32:01
*/
public class PopWindowSelectCondition extends PopupWindow {
....代码省略....
@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);
}
....代码省略....
}