好的,所以我开始掌握构建Android应用程序的问题,至少在几天后程序员可以做到这一点 - 我为迄今为止学到的东西感到自豪。
无论如何,我想强制登录主活动 - 这是我通过获取SharedPrefernece而不是检查该信息是否为空而不是获取一个保存“登录”字段和选项的PopupWindow。
这个PopupWindow里面有一个Flipper,很好,当选择了某些选项时我工作正常。
我在显示此PopupWindow时遇到的问题就像内容的大小(wrap_content)一样,当我设置PopupWindow.setAtLocation()
时现在,这是我一直试图获得弹出窗口的大小 - 正如这里提到的几次:
popup.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
final PopupWindow pw = new PopupWindow(popup,popup.getMeasuredHeight(),popup.getMeasuredWidth(), true);
请注意,popup是Popup实际布局的充气器,pw是实际的PopupWindow对象。
现在,我想获得弹出窗口的实际大小(这样它就不会在页面上拉出来,而是在中心看起来像普通弹出窗口一样。
另外,使用ViewFlipper。我希望它在切换页面时更新弹出窗口的大小(因此页面应该在每页上下调整大小)是否有办法使这项工作也一样?我尝试过pw.update(),但效果不佳。
答案 0 :(得分:1)
您想要衡量您将添加到PopupWindow
的实际布局。我刚刚解决了将ListView
置于PopupWindow
内的类似问题。诀窍是覆盖onMeasure()
中的View
。每次更改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);
}
}