文档章节

使用PopupWindow弹出menu菜单,解决宽度自适应的问题

NCThinker
 NCThinker
发布于 2014/04/23 15:44
字数 128
阅读 3593
收藏 4

 

如图所示,要实现,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

NCThinker

粉丝 18
博文 14
码字总数 6074
作品 0
深圳
程序员
私信 提问
加载中

评论(1)

当空皓月
当空皓月
你好!如果list是一个左边图片右边文字,这个方法似乎不行,文字会自动换行
PopupWindow 实现自定义弹出层

Android系统的AlertDailog ,Menu。。。之类控件,我不确定能否自定义样式。 就是在应用中自定义一套主题。 因为系统Menu菜单极其单一。样式丑陋,而且字体,字号都无法修改。 想到用PopupWi...

鉴客
2012/01/13
1K
0
教你如何创建类似QQ的android弹出菜单

热心推荐: Android ListView两种长按弹出菜单方式 popupwindow实现弹出菜单效果 Android人才招聘——最新招聘 大家可能看到 android 的自带的系统菜单比较难看,如图: 很多应用都自己定义了系...

长平狐
2012/08/21
521
0
教你如何创建类似QQ的android弹出菜单

热心推荐: Android ListView两种长按弹出菜单方式 popupwindow实现弹出菜单效果 Android人才招聘——最新招聘 大家可能看到 android 的自带的系统菜单比较难看,如图: 很多应用都自己定义了系...

长平狐
2012/08/14
7.3K
1
Android提高十八篇之自定义Menu(TabMenu)

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 快要过年了,在这里先祝广大的技术宅兔年快乐! 用过UCWEB-Android版的人都应该对其特殊的menu有印象,把menu做成Tab-Menu(支持...

晨曦之光
2012/03/14
700
1
教你如何创建类似QQ的android弹出菜单

热心推荐: Android ListView两种长按弹出菜单方式 popupwindow实现弹出菜单效果 Android人才招聘——最新招聘 大家可能看到 android 的自带的系统菜单比较难看,如图: 很多应用都自己定义了系...

长平狐
2012/08/09
336
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 有一天考拉麻麻拉肚子了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享周汇洋的单曲《Man Srae(曼斯拉之舞)》:美滋滋。。。。 手机党少年们想听歌,请使劲儿戳(这里) 我听了一下 赶紧关了, ...

小小编辑
49分钟前
17
4
oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
6
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
18
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部