Android:DrawerLayout,内容视图包含两个片段

时间:2015-04-22 10:27:42

标签: android android-fragments 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时没有任何内容在屏幕上:它变得更暗,就像抽屉已经打开一样。

左抽屉菜单没有显示的原因是什么?

1 个答案:

答案 0 :(得分:0)

您的menu_frame_two FrameLayout似乎正在通过menu_frame导航抽屉。因此,导航抽屉在那个时间不可见

解决方案:

  • 使用单个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>

原因:

  • 根据Documentation,应该有一个content_frame,其高度和宽度等于match_parent