好了,我开始掌握构建Android应用程序的窍门了,至少几天后程序员可以做到这一点--我为自己到目前为止所学到的东西感到自豪。
无论如何,我想在主活动上强制登录-这是通过获取一个SharedPrefernece,然后检查这条信息是否为空,然后获取一个包含“登录”字段和选项的PopupWindow来实现的。
这个PopupWindow有一个内部的Flipper,这是很好的,当某些选项被选择时,我得到了良好的工作。
在设置PopupWindow.setAtLocation()时,将此PopupWindow显示为内容的大小(wrap_content)时遇到问题。
现在,这是我一直在尝试做的,以获得弹出窗口的大小-正如这里提到的几次:
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(),但效果不是很好。
发布于 2012-04-12 03:36:18
您想要测量将要添加到PopupWindow的实际布局。我刚刚解决了在PopupWindow中放入ListView的类似问题。诀窍是覆盖View中的onMeasure()。每次更改时都要重新测量该ViewFlipper。
@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);
}
}https://stackoverflow.com/questions/6946523
复制相似问题