PopupWindow 注意事项

Popupwindow的使用方法概要如下:

  PopupWindow window;

  View v = this.getLayoutInflater().inflate(R.layout.popupwindow, null);

  window = new PopupWindow(v, 200, 300);

  window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);

  window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

  设置长宽并非必须,但是不设置可能会导致图片显示尺寸不合适。

  window.setOutsideTouchable(true);

  不设置此项则下面的捕获window外touch事件就无法触发。

  Drawable win_bg = this.getResources().getDrawable(R.drawable.bg);

  window.setBackgroundDrawable(win_bg);

  这个很WS,即使在XML里设置了background也认为是没有背景,必须在这里指定背景,如果不指定同样无法触发下面的Touch监听事件。

  window.setTouchInterceptor(new OnTouchListener() {

  @Override

  public boolean onTouch(View v, MotionEvent event) {

  if (event.getAction() == MotionEvent.ACTION_OUTSIDE)

  window.dismiss();

  return false;

  }

  });

  在onCreate里设置好这些后,在某个button的onClick里调用window.showAsDropDown(v);即可(v是onClick函数的参数)

  如果CustomPopupWindow继承了PopupWindow,而QuickAction继承了CustomPopupWindow的话,在QuickAction里不要用setContentView,不然可能图片会变得很大,比实际尺寸还大,目前原因未明。

  QuickAction的XML文件,最外层的要用LinearLayout,不能用RelativeLayout,不然图片会很大,原因未明。

  用LinearLayout时会出现上面的元素覆盖下面的,比如上面一个listview下面一个button,listview的元素多到覆盖屏幕时就会覆盖掉button,可以把LinearLayout改成RealtiveLayout即可。

  转自:http://hi.baidu.com/jacky_java/blog/item/37f5915453ff479f8c543023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值