Кто-нибудь знает, есть ли способ разместить StreetViewPanoramaView в XML? У меня уже есть фрагмент карты и накладываю сверху поверх него, но он выглядит, когда я использую com.google.android.gms.maps.StreetViewPanoramaView в XML и вызываю onStreetViewPanoramaReady в своем MapFragment, я никогда не получаю ответ для инициализации моя Панорама.Android: Использование StreetViewPanoramaView в XML
Каждый пример, который я могу найти на GitHub, и от Google, похоже, создает представление в коде, а затем присоединяет его к активности. В итоге я попытался создать StreetViewPanoramaView в коде с параметрами, установленными в моем MapFragment, но все равно не смог получить обратный вызов. Если я использую StreetViewPanoramaFragment, я могу получить панораму в порядке через обратный вызов и выполнить то, что я пытаюсь сделать, но я действительно не хочу встраивать элемент StreetViewPanoramaFragment в качестве наложения на MapFragment, если я могу его избежать.
Что работает для меня прямо сейчас в моем MapFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup parent = (ViewGroup) super.onCreateView(inflater, container, savedInstanceState);
View overlay = inflater.inflate(R.layout.view_map_overlay, parent, false);
mIndoorSelector = (SeekBar) overlay.findViewById(R.id.indoor_level_selector);
mIndoorMinLevel = (TextView) overlay.findViewById(R.id.indoor_min_level);
mIndoorMaxLevel = (TextView) overlay.findViewById(R.id.indoor_max_level);
parent.addView(overlay);
hideFloorLevelSelector();
mPanoramaFragment = (StreetViewPanoramaFragment) getActivity().getFragmentManager().findFragmentById(R.id.steet_view_panorama);
mPanoramaFragment.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
mPanorama = streetViewPanorama;
showStreetView(new LatLng(40.7506, -73.9936));
}
});
return parent;
}
XML файл:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/indoor_min_level"
android:text="0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="4dp"
android:textSize="20sp"
android:gravity="center"
android:textColor="@android:color/white" />
<SeekBar
android:id="@+id/indoor_level_selector"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="8" />
<TextView
android:id="@+id/indoor_max_level"
android:text="10"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="4dp"
android:textSize="20sp"
android:textColor="@android:color/white"
android:gravity="center" />
</LinearLayout>
<fragment
android:id="@+id/steet_view_panorama"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_alignParentBottom="true"
class="com.google.android.gms.maps.StreetViewPanoramaFragment"/>
А что не так с этим кодом? Любая ошибка? Исключение нулевого указателя? MapFragment - вы имеете в виду, что вы расширяете com.google.android.gms.maps.MapFragment в этом классе? –
Я расширяю MapFragment для этого класса, да. Код, который я опубликовал, хорош и работает. То, что я хочу сделать, это использовать StreetViewPanoramicView вместо фрагмента. –
Посмотрите на мою последнюю редакцию ответа, я создал простой gist –