首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PopupWindow宽度和高度

PopupWindow宽度和高度
EN

Stack Overflow用户
提问于 2011-08-05 02:18:00
回答 1查看 8.3K关注 0票数 3

好了,我开始掌握构建Android应用程序的窍门了,至少几天后程序员可以做到这一点--我为自己到目前为止所学到的东西感到自豪。

无论如何,我想在主活动上强制登录-这是通过获取一个SharedPrefernece,然后检查这条信息是否为空,然后获取一个包含“登录”字段和选项的PopupWindow来实现的。

这个PopupWindow有一个内部的Flipper,这是很好的,当某些选项被选择时,我得到了良好的工作。

在设置PopupWindow.setAtLocation()时,将此PopupWindow显示为内容的大小(wrap_content)时遇到问题。

现在,这是我一直在尝试做的,以获得弹出窗口的大小-正如这里提到的几次:

代码语言:javascript
复制
popup.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
final PopupWindow pw = new PopupWindow(popup,popup.getMeasuredHeight(),popup.getMeasuredWidth(), true);

请注意,Popup是实际布局的充气弹出窗口,pw是实际的PopupWindow对象。

现在,我只想得到弹出窗口的实际大小(这样它就不会散布在页面上,而只是在中间看起来像一个正常的弹出窗口。

此外,还有ViewFlipper。我想让它在切换页面时更新弹出窗口的大小(所以页面应该是每个页面的大小),有没有办法也能做到这一点?我尝试了pw.update(),但效果不是很好。

EN

回答 1

Stack Overflow用户

发布于 2012-04-12 03:36:18

您想要测量将要添加到PopupWindow的实际布局。我刚刚解决了在PopupWindow中放入ListView的类似问题。诀窍是覆盖View中的onMeasure()。每次更改时都要重新测量该ViewFlipper

代码语言:javascript
复制
@Override
public void onMeasure(int x, int y)
{
    super.onMeasure(x, y);

    if(x == View.MeasureSpec.UNSPECIFIED && y == View.MeasureSpec.UNSPECIFIED)
    {
        //measure your child views here

        //tell the view it has been measured
        this.setMeasuredDimension(width, height);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6946523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档