2013-10-11 6 views
12

У меня есть простая структура макета:Android MapView перекрывается DrawerLayout

DrawerLayout 
\-- FrameLayout // @+id/fragment_container 
\-- ListView // @+id/drawer_list 

При нажатии любого ящика пункта Я вставив/замена фрагмента через FragmentTransaction.replace() в R.id.fragment_container с соответствующим фрагментом экземпляра. Один из этих фрагментов содержит MapView.

И это имеет проблемы с воспроизведением на разных устройствах, но в то же время DDMS показывает мне правый скриншот. на таких устройствах появляется

EDITED

Издание:

  • Huawei U9508, Android 4.0.4 (API 15)
  • Желание HTC A9191, Android 2.3.5 (API 10)

no issue на таких устройствах:

  • Samsung Galaxy S2 с CyanogenMod Android 4.2.2 (API 17)
  • LG Google Nexus 4 Android 4.3 (API 18)

Может кто-нибудь помочь мне понять и решить эту проблему?

Смотри изображения:

Huawei U9508, Android 4.0.4 (API 15)

enter image description here enter image description here enter image description here

Желание HTC A9191, Android 2.3.5 (API-10)

enter image description here

DDMS

enter image description here

EDITED

активность макета:

<?xml version="1.0" encoding="utf-8"?> 
<DrawerLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/drawer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 

    <!-- The main content view --> 
    <FrameLayout 
      android:id="@+id/fragment_container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 

    <!-- The navigation drawer --> 
    <ListView 
      android:id="@+id/drawer_list" 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      /> 
</DrawerLayout> 

фрагмент макета:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

    <!-- other views here --> 

    <com.google.android.gms.maps.MapView 
      android:id="@+id/consumer_profile_map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 
</RelativeLayout> 
+0

MapView жаден –

+0

, что вы имеете в виду? как этого избежать? –

+0

Sry для OT, но вы из Нюрнберга? –

ответ

27

Итак, я нашел решение обходного решения: просто оберните MapView в контейнер и положите пустой View выше.Благодаря этому ответу: https://stackoverflow.com/a/16231935/1891118

Там мой обновленный макет:

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 

    <com.google.android.gms.maps.MapView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 

    <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 
</FrameLayout> 
+0

Большое спасибо, это также помогло мне в аналогичном случае, но я использую VideoView вместо MapView. –

+0

Также работает с 'ru.yandex.yandexmapkit.MapView'. Простое и элегантное решение! – kit

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