Мое намерение - показать фрагмент, если есть что показать и скрыть его, если его нет.StreetViewPanorama(). GetLocation() непоследовательные результаты?
Моей проблема заключается в том, что, учитывая те же координаты:
- На первую попытку,
mStreetView.getStreetViewPanorama().getLocation()
имеет ненулевой ответ и показывает вид. ОднакоFragment
черный (пустой). - При второй попытке
mStreetView.getStreetViewPanorama().getLocation()
имеет нулевой ответ, и вид остается скрытым.
Мой код:
mStreetView.getView().setVisibility(View.GONE);
mStreetView.getStreetViewPanorama().setPosition(customMarker.getPosition());
if (mStreetView.getStreetViewPanorama().getLocation() != null &&
mStreetView.getStreetViewPanorama().getLocation().links != null) {
mStreetView.getView().setVisibility(View.VISIBLE);
}
Я не уверен, как идти об отладке этого. Мне кажется, что результаты не должны меняться подобным образом, тем более, что, несмотря на то, что у него есть ненулевые результаты, результаты (по-видимому) не имеют допустимого значения, чтобы позволить что-то отображаться.
Edit:
Это координатные функции, как и ожидалось, и показывает вид правильно населенную: 33.6645598, -111,9253126
Эта координата показывает вид, но он черный, а потом возвращает нуль: 33,6492448, -111,9354228
Эти результаты согласуются.
Edit2:
Я попытался использовать OnStreetViewPanoramaReadyCallback()
, однако результаты были одинаковыми.
Код теперь:
mStreetView.getView().setVisibility(View.GONE);
mStreetView.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
streetViewPanorama.setPosition(customMarker.getPosition());
if (streetViewPanorama.getLocation() != null && streetViewPanorama.getLocation().links != null) {
mStreetView.getView().setVisibility(View.VISIBLE);
}
}
});
Я не использую 'onStreetViewPanoramaReady'. Я предположил, что, поскольку я создал представление намного раньше в программе, у меня не было бы условий гонки. Я также предположил, что условие гонки не является проблемой, поскольку в некоторых местах функциональность работает по назначению и будет правильно отображать вид на улицу, а в других - нет. – nukeforum
Я попытался использовать этот обратный вызов, но он не дал никаких других результатов. – nukeforum