Android 7.0手机popwindow的showAsDropDown方法失效解决方案

最近用7.0的android手机测试项目,发现popwindow的showAsDropDown失效了,
不过最终找到了两种解决方案:
1、重写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);
  }

2、使用showAtLocation方法:

  if (Build.VERSION.SDK_INT >= 24) {
            int[] point = new int[2];
            v.getLocationInWindow(point);
            mPopWindow.showAtLocation(((Activity) mContext).getWindow().getDecorView(), Gravity.NO_GRAVITY, 0, point[1] + v.getHeight());
        } else {
            mPopWindow.showAsDropDown(v);
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容