0

Я сталкиваюсь с (я уверен) глупой проблемой и могу использовать другой набор глаз.Фрагмент GoogleMap в вкладках ActionBar (с ActionBarSherlock)

У меня есть приложение, которое требует, чтобы GoogleMaps отображались в нескольких местах приложения. У меня это успешно показано в моей основной деятельности, все библиотеки Сыграть на месте, ключ V2 все установка и т.д.

My (усеченный) mapview.xml выглядит следующим образом:

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 

Как я уже сказал, по основному действию я могу правильно установить ContentView и нарисовать карту, без проблем.

Однако на другой деятельности, я реализующие вкладки:

ActionBar actionBar = getSupportActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    // Add tabs 
    actionBar.addTab(actionBar.newTab().setText(R.string.map).setTabListener(this)); 

Вот где я бегу в неприятности. На закладке выбирается слушателем, я делаю следующее, что я уверен, что будет неправильно (Макет пустой линейная планировка):

GoogleMapFragment mapFragment = new GoogleMapFragment(); 
    fragmentTransaction = supportFragmentManager.beginTransaction(); 
    fragmentTransaction.addToBackStack(null); 
    fragmentTransaction.replace(layout.getId(), mapFragment); 
    fragmentTransaction.commit(); 

Этот фрагмент карты выглядит следующим образом:

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.map_view, null); 
    } 

, когда он работает, я получаю различные ошибки в зависимости от того, как я настроить это, например,

android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
Caused by: java.lang.IllegalArgumentException: Binary XML file line #2: Duplicate id 0x7f040058, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment 

как я уже сказал, я уверен, что это не так, то кажется, что я пытаюсь надуть фрагмент дважды, или, возможно, работает в проблемы, используя меня фрагмент в двух местах в приложении.

На данный момент я не уверен, как это исправить. Любые советы будут очень признательны.

+0

Это фактически дублирует это: http://stackoverflow.com/questions/14124354/android-supportmapfragment-with-google-map-api-2-0-giving-error –

ответ

-1

Вы уже определили расположение фрагмента в XML-файле, поэтому вам не нужно добавлять его во время выполнения, просто передайте макет фрагмента (mapview.xml в вашем случае) в качестве параметра в setContentView вашего Мероприятия.

+0

на самом деле я могу не видите, где вы используете mapFragment в своем коде. – Adil

+0

Извините, была опечатка, исправлена. Я использую его при вызове replace(). –

+0

и GoogleMapFragment расширяет класс? – Adil

-1

Попробуйте использовать MapView вместо фрагмента в вашем макете.

<com.google.android.gms.maps.MapView 
    android:id="@+id/map_view" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

«MapView» устарел в версии v2; он также не работает здесь. Но спасибо за предложение! –

Смежные вопросы