使用PopupWindow弹出menu菜单,解决宽度自适应的问题
使用PopupWindow弹出menu菜单,解决宽度自适应的问题
NCThinker 发表于4年前
使用PopupWindow弹出menu菜单,解决宽度自适应的问题
  • 发表于 4年前
  • 阅读 3292
  • 收藏 4
  • 点赞 0
  • 评论 1

标题:腾讯云 新注册用户域名抢购1元起>>>   

 

如图所示,要实现,PopupWindow弹出的菜单随内容的宽度决定,目前找到自认为比较好的办法是,重写ListView的onMeasure()方法。然后就可以实现了,在此mark一下。代码如下:

@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
	    int maxWidth = meathureWidthByChilds() + getPaddingLeft() + getPaddingRight();
	    super.onMeasure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.EXACTLY), heightMeasureSpec);     
	}

	public int meathureWidthByChilds() {
	    int maxWidth = 0;
	    View view = null;
	    for (int i = 0; i < getAdapter().getCount(); i++) {
	        view = getAdapter().getView(i, view, this);
	        view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
	        if (view.getMeasuredWidth() > maxWidth){
	            maxWidth = view.getMeasuredWidth();
	        }
	    }
	    return maxWidth;
	}

 

共有 人打赏支持
NCThinker
粉丝 17
博文 14
码字总数 6074
评论 (1)
当空皓月
你好!如果list是一个左边图片右边文字,这个方法似乎不行,文字会自动换行
×
NCThinker
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: