美文网首页Android技术
Android 7.0手机popwindow的showAsDro

Android 7.0手机popwindow的showAsDro

作者: 满天星爱我 | 来源:发表于2017-04-20 13:36 被阅读136次

最近用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);
        }

相关文章

网友评论

  • 程自舟:这是昨天群里的问题吧,我说我咋没遇到过。我直接用的showatloctaion,并且没必要判断SDK啊,直接用这个
    满天星爱我:@成长L泷 你把popwindow的高设置成wrap_content试试
    成长L泷:确定这样就解决了 ,我用7.1的小米6按照你这两种解决方案都试过,都不行,还是会置顶
    满天星爱我:都一样哈哈

本文标题:Android 7.0手机popwindow的showAsDro

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