Tôi đang cố gắng sử dụng bản đồ google v2 trong viewpager (fragmentpager) trong một đoạn. Nó hoạt động tốt nếu tôi swipe để mảnh thứ tư (xem máy nhắn tin), nhưng nếu tôi quay trở lại mảnh đầu tiên và sau đó trở lại thứ tư - với bản đồ - ứng dụng của tôi chết.Android, bản đồ google fragment và viewpager - Lỗi lạm phát phân đoạn lớp
07-04 19:38:20.937: E/AndroidRuntime(20175): FATAL EXCEPTION: main
07-04 19:38:20.937: E/AndroidRuntime(20175): android.view.InflateException: Binary XML
file line #13: Error inflating class fragment
...
07-04 19:38:20.937: E/AndroidRuntime(20175): Caused by:
java.lang.IllegalArgumentException: Binary XML file line #13: Duplicate id 0x7f050010,
tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment
07-04 19:38:20.937: E/AndroidRuntime(20175): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285)
07-04 19:38:20.937: E/AndroidRuntime(20175): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
Android Java:
public class LocationDetail extends Fragment {
private SupportMapFragment mMapFragment;
private GoogleMap map;
private EventAdapter listAdapter ;
protected MainActivity activity;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View vw = inflater.inflate(R.layout.map, container, false);
try {
MapsInitializer.initialize(getActivity());
} catch (GooglePlayServicesNotAvailableException e) {
// TODO handle this situation
}
map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map_container)).getMap();
map.setMyLocationEnabled(true);
map.addMarker(new MarkerOptions()
.position(new LatLng(48.397141, 9.98787)).title(" Theatro Club Ulm"));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(48.397141, 9.98787) , 14.0f));
return vw;
}
}
Layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="vertical" >
<fragment
android:id="@+id/map_container"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.dr.diskoapp.MainActivity"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="vertical" >
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list">
</ListView>
</LinearLayout>
</LinearLayout>
Tôi đã nhìn thấy rằng có rất nhiều chủ đề với một vấn đề tương tự, nhưng không có giải pháp: -/
perhapse ai cũng có thể giúp lần này.
---------- EDIT ----- Tôi tìm thấy giải pháp :-)
public void onDestroyView() {
super.onDestroyView();
try {
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map_container));
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
Đồng ý đặt câu trả lời này (có, trả lời câu hỏi của riêng bạn) để người khác có thể thấy rằng sự cố đã được giải quyết! – DaGardner
bạn nói đúng, theo cách đó đã thử tôi trước, nhưng tôi không có đủ danh tiếng để làm điều đó :-( – Dominik00000
Lạ lẫm, làm việc tuyệt vời cho tôi và vấn đề của tôi xảy ra với hai trang - một trang chứa bản đồ và Bất cứ ai có thể giải thích những gì đang xảy ra ở đây để làm cho nó sụp đổ? –