Я все новичок в разработке Android, но уже в большой беде. Я прочитал несколько потоков как здесь, так и на других сайтах относительно аналогичной или даже той же проблемы. Но все ответы, которые я нашел, не соответствуют моим потребностям или вообще не работают для меня.Android - Повторное раздувание фрагмента приводит к «Ошибка раздувания фрагмента класса»
Итак, вот что. У меня есть одно действие с самодельным слоем «меню», включающим 3 кнопки внизу действия и ScrollView выше. Теперь по нажатию одной из этих кнопок я просто надуть фрагмент в ScrollView используя
svContent.removeAllViews();
getLayoutInflater().inflate(R.layout.fragment_xyz, (ScrollView) findViewById(R.id.svContent));
который накачивают прекрасно.
Теперь надутый фрагмент содержит еще один фрагмент для Карт Google (API 2), который выглядит следующим образом.
<fragment
android:id="@+id/fMap"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="150dp" />
Этот фрагмент также заполнен так, как я хочу, при инфляции его родительского фрагмента, и карта работает нормально.
Теперь я нажимаю на другую кнопку меню, чтобы надуть другой фрагмент. Но право, когда я нажимаю кнопку для первого фрагмента снова, я получаю следующее сообщение об ошибке:
Duplicate id xxxxx, tag null, or parent id xxxxx with another fragment for com.google.android.gms.maps.MapFragment
Как я уже сказал, я попробовал несколько решения, которое я нашел в Интернете, включая
- переход от простирающегося фрагмента к FragmentActivity
- с использованием SupportMapFragment вместо фрагмента
- раздувания суб-фрагмент (в Google Maps один) из кода вместо XML
Все это было несколько недостатков, я не могу принять в данный момент (по крайней мере, я думаю) или «не работает» для меня или в моем созвездии
Любая помощь очень ценится. И, пожалуйста, я знаю, если вам нужна дополнительная информация.
С уважением, D.
Почему вы «не можете принять», создавая фрагмент кодом? Это 4 строки кода, это ничего не меняет, и это будет работать отлично. –
Попробуйте переместиться в другое созвездие. Андромеда ... возможно? – Emmanuel
@StephaneMathis Создание фрагмента из кода - это то, что я мог бы прекрасно принять, но, к сожалению, не работал для меня - по крайней мере, не примеры, которые я нашел, а также просматривая api docs. Я не помню точной проблемы, с которой я столкнулся, у меня было слишком много попыток решения за последние 2 дня. Но, конечно, я могу попробовать еще раз, у вас есть не устаревший рабочий пример? – tetzlaff