MapView не работает должным образом внутри фрагмента Android
Привет в моем приложении я отображаю один фрагмент. Внутри этого фрагмента я показываю карту. Итак, мой код выглядит так:
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/innerrelativelay"
android:padding="10dp">
<TextView
android:id="@+id/storename"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Store Name:"
android:textSize="15sp"
/>
<TextView
android:id="@+id/storeaddress"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/storename"
android:text="Store Address:"
android:textSize="15sp"
/>
</RelativeLayout>
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapView"
android:layout_below="@+id/innerrelativelay"
/>
</RelativeLayout>
и фрагмент выглядит так:
public class MyAccount extends SherlockFragment {
MapView map;
GoogleMap mMap;
TextView storeName,storeAddress;
SharedPreferences storeInfo,authenticationInfo;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.maplayout, container, false);
map = (MapView) v.findViewById(R.id.mapView);
map.onCreate(savedInstanceState);
mMap = map.getMap();
map.onCreate(savedInstanceState);
mMap.getUiSettings().setMyLocationButtonEnabled(false);
mMap.setMyLocationEnabled(true);
try {
MapsInitializer.initialize(this.getActivity());
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
// Updates the location and zoom of the MapView
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
mMap.animateCamera(cameraUpdate);
mMap.setMyLocationEnabled(true);
storeName = (TextView)v.findViewById(R.id.storename);
storeAddress = (TextView)v.findViewById(R.id.storeaddress);
storeInfo = getActivity().getSharedPreferences(CommonSharedPref.QCMERCHANT_STOREID, 0);
authenticationInfo = getActivity().getSharedPreferences(CommonSharedPref.QCMERCHANT_AUTHENTICATION_INFO, 0);
storeName.setText(storeName.getText().toString()+storeInfo.getString(CommonSharedPref.QCMERCHANT_STORENAME, ""));
storeAddress.setText(storeAddress.getText().toString()+storeInfo.getString(CommonSharedPref.QCMERCHANT_ADDRESS1, "")
+"\n"+storeInfo.getString(CommonSharedPref.QCMERCHANT_ADDRESS1, ""));
return v;
}
}
Он показывает мою карту правильно, но создание маркера, показывающего текущее местоположение или перемещение камеры в данном месте, не работает должным образом. Как это сделать Нужна помощь. Спасибо.
1 ответ
ОБНОВЛЕНИЕ Попытайтесь изменить расположение фрагмента как
<fragment
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
Также кажется, что вы еще не инициализировали маркеры. Вот почему маркеры не видны.. Если вам нужны указатели того, как это сделать.. Есть очень хорошая учебная страница...
http://www.vogella.com/articles/AndroidGoogleMaps/article.html
Отсюда https://developers.google.com/maps/documentation/android/v1/hello-mapview вы можете увидеть, что
Версия 1 Google Maps Android API официально объявлена устаревшей с 3 декабря 2012 г.
Таким образом, вы не должны больше использовать MapView. Я предлагаю вам использовать MapFragment вместо этого. См. Отличную документацию для этого здесь: https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapFragment