Пользовательское представление onMeasure (...) ширина и высота равны 0, когда отображается AlertDialog - PullRequest
2 голосов
/ 12 января 2012

Мое приложение состоит из MapActivity, который загружает представление XML (map_layout), содержащее MapView и CustomView, которое расширяет ImageView.

Я использую следующий код для настройки моего MapActivity:

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

Затем при инициализации я извлекаю MapView и CustomView из файла XML, используя findViewById(...) как обычно.

В функции onMeasure(...) моего CustomView я использую this.getWidth() и this.getHeight(), чтобы получить его размеры, которые возвращают правильные результаты.

Затем в своем коде initialise() я решил проверить, включен ли GPS (используя код, подобный первому ответу здесь: Как узнать, включен ли GPS устройства Android ), показывает AlertDialog, если GPS отключен.

Проблема теперь в том, что функция onMeasure(...) моего CustomView больше не работает правильно, и this.getWidth() и this.getHeight() оба возвращают 0, если отображается AlertDialog.

Почему это так?

Заранее спасибо за помощь, если мой вопрос неясен, я отредактирую его, чтобы добавить полный код, когда у меня будет шанс.

1 Ответ

2 голосов
/ 17 января 2012

Хорошо, мне нужно было получить высоту и ширину в пределах onLayout() вместо onMeasure() по некоторым причинам.

...