Приложение Google Map вылетает, если дважды щелкнуть его в окне навигации
Я создал приложение, в которое я включил навигационный ящик. В котором есть один фрагмент, связанный с фрагментом карты Google, но он вылетает, если я дважды щелкаю по нему, оставаясь на том же фрагменте, который я использовал следующим способом:
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
Fragment f=(Fragment)getFragmentManager().findFragmentById(R.id.maps);
if(f!=null)
{
getFragmentManager().beginTransaction().remove(f).commit();
}
super.onDestroyView();
}
Приведенный выше метод помог сделать так, чтобы приложение не зависало при переключении на другие фрагменты, но если я нажимаю на фрагмент карты Google, оставаясь на том же фрагменте (фрагмент карты Google) карты Google, происходит сбой всего приложения.
И это весь мой код:
public class MainActivityUseful extends Fragment{
GoogleMap gmap;
MapView mView;
Bundle mBundle;
//Marker userMarker;
static View rootView;
private static final LatLng venue=new LatLng(26.785634800000000000, 80.922847499999990000);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
rootView=inflater.inflate(R.layout.activity_main_activity_useful, container,false);
try{
if(gmap==null){
gmap=((MapFragment)getFragmentManager().findFragmentById(R.id.maps)).getMap();
}
gmap.addMarker(new MarkerOptions().position(venue).title("Lucknow Mahotsav Venue").snippet("Venue of Lucknow Mahotsav 2014"));
CameraPosition cmps=new CameraPosition.Builder().target(venue).zoom(15).bearing(70).tilt(25).build();
gmap.animateCamera(CameraUpdateFactory.newCameraPosition(cmps));
}
catch(Exception e)
{
e.printStackTrace();
}
return rootView;
}
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
Fragment f=(Fragment)getFragmentManager().findFragmentById(R.id.maps);
if(f!=null)
{
getFragmentManager().beginTransaction().remove(f).commit();
}
super.onDestroyView();
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
if(gmap!=null)
{
gmap=null;
}
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
if(gmap!=null)
{
gmap=null;
}
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
if(gmap!=null)
{
gmap=null;
}
}
@Override
public void onDetach() {
// TODO Auto-generated method stub
super.onDetach();
if(gmap!=null)
{
gmap=null;
}
}
}
XML выглядит следующим образом:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="think.computers.lucknowmahotsav.MainActivityUseful" >
<fragment
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/maps"
android:name="com.google.android.gms.maps.MapFragment"
/>
Ошибка: "11-25 12:19:01.628: E/AndroidRuntime(9031): android.view.InflateException: строка двоичного файла XML #11: ошибка надувания фрагмента класса"