Android: DrawerLayout с представлением содержимого с двумя фрагментами

Я создаю макет для планшета, и у меня есть DrawerLayout, который имеет Fragment в левом меню (то есть ящик) и должен иметь два фрагмента в качестве основного содержимого.

Я делаю это следующим образом:

<?xml version="1.0" encoding="utf-8"?>

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"/>

    <View
        android:id="@+id/right_card_group_divider"
        android:layout_width="1dip"
        android:layout_height="match_parent"
        android:background="@drawable/grey_line_bg"/>

    <FrameLayout
        android:id="@+id/menu_frame_two"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1.3"/>
</LinearLayout>

<!-- The navigation drawer -->
<FrameLayout
    android:id="@+id/menu_frame"
    android:layout_width="300dp"
    android:layout_gravity="start"
    android:layout_height="match_parent"/>
</android.support.v4.widget.DrawerLayout>

Тем не менее, я замечаю, что если я вручную скрою "menu_frame_two", то DrawerLayout работает отлично, но если этот Fragment не скрыт, то при открытии DrawerLayout на экране ничего не появляется: становится темнее, как если бы ящик был открыт.

Есть ли причина, по которой меню левого ящика не отображается?


person noloman    schedule 22.04.2015    source источник


Ответы (1)


Кажется, что ваш menu_frame_two FrameLayout подходит к menu_frame Navigation Drawer. Таким образом, навигационный ящик в этот раз не виден

Решение :

  • Используйте один FrameLayout и добавьте в него все элементы основного экрана контента.
 <FrameLayout android:id = "@+id/content_frame"         
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
   <FrameLayout
    android:id="@+id/content_frame_inside"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="3"/>

<View
    android:id="@+id/right_card_group_divider"
    android:layout_width="1dip"
    android:layout_height="match_parent"
    android:background="@drawable/grey_line_bg"/>

<FrameLayout
    android:id="@+id/menu_frame_two"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1.3"/>
</FrameLayout>

Причина :

  • Согласно документации должен быть один content_frame с равными высотой и шириной до match_parent
person Kushal    schedule 22.04.2015