显示AlertDialog时,自定义视图onMeasure(...)的宽度和高度为0

时间:2012-01-11 21:50:03

标签: java android view bitmap alertdialog

我的应用程序由MapActivity组成,它加载了一个XML视图(map_layout),其中包含MapViewCustomView,其中ImageView。<登记/> 我使用以下代码设置MapActivity

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_layout);
    initialise();
}

然后在初始化时,我像往常一样使用MapView从XML文件中检索CustomViewfindViewById(...)

在我onMeasure(...)的{​​{1}}函数内,我使用CustomViewthis.getWidth()来获取其尺寸,从而返回正确的结果。

然后在我的this.getHeight()代码中,我决定检查GPS是否已启用(使用类似于此处第一个答案的代码:How do I find out if the GPS of an Android device is enabled),如果GPS被禁用则显示initialise()。< / p>

问题是,AlertDialog的{​​{1}}功能不再正常运行,如果onMeasure(...)获得CustomViewthis.getWidth(),则this.getHeight()AlertDialog都会返回0显示。

为什么会这样?

感谢您的帮助,如果我的问题不清楚,我会编辑它,以便在我有机会时添加完整的代码。

1 个答案:

答案 0 :(得分:2)

好的,出于某种原因,我需要在onLayout()而不是onMeasure()内获得高度和宽度。