双面导航抽屉的两个滚动视图隐藏切换

时间:2015-09-15 19:02:28

标签: android android-actionbar navigation-drawer android-toolbar actionbardrawertoggle

我花了很多时间试图找到ActionBarDrawerToggle的问题,但问题出在我的主要布局中。

让我说明问题所在。

以下是示例,它在应用程序启动后的初始状态。

enter image description here

正如您所见,汉堡包存在但现在没有显示 如果出现滑动抽屉菜单。

enter image description here

它看起来应该是这样的,但是当它被调用时,它会突然消失,例如invalidateOptionsMenu()

所以我试图用切换找到问题,但它在我的布局中

这是我的布局xml文件。

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

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


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/linear_layout_main_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar_main"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                android:visibility="gone"
                app:theme="@style/MainAppTheme.ToolbarMain"
                app:titleTextAppearance="@style/MainAppTheme.Toolbar.Title" />
        </LinearLayout>

        <ViewStub
            android:id="@+id/stub_progress_bar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:inflatedId="@+id/progress_bar_buttons"
            android:layout="@layout/view_stub_progressbar_bg" />
    </FrameLayout>

    <ScrollView
        android:id="@+id/frame_layout_drawer_left"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fillViewport="true">

    </ScrollView>

    <ScrollView
        android:id="@+id/frame_layout_drawer_right"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fillViewport="true" />
</android.support.v4.widget.DrawerLayout>

问题出在上一个ScrollView,没有上一个/右滚动视图,一切正常。顺便说一下,这个布局可以用两个抽屉很好地工作,但在这种情况下只会错过汉堡包 我想问题是导航抽屉toogle与两个导航抽屉视图冲突 因为重力端对于什么样的视图并不重要,在这种情况下它不会显示汉堡包(如果存在重力端的视图)

请帮助解决这个问题,因为我不知道如何处理它,无论如何我需要两个抽屉。

任何帮助都将受到高度赞赏,谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个非常有趣的问题,但我认为我有一个解决方案。那2个解决方案,

  1. 您是否创建了Frame Layout,其中包含两个独立的android.support.v4.widget.DrawerLayout版面?

    <FrameLayout

        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <android.support.v4.widget.DrawerLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <!--your content -->
            <ScrollView
                android:id="@+id/frame_layout_drawer_left"
                android:layout_width="0dp"
                android:layout_height="match_parent"/>
        </android.support.v4.widget.DrawerLayout>
    
        <android.support.v4.widget.DrawerLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <ScrollView
                android:id="@+id/frame_layout_drawer_right"
                android:layout_width="0dp"
                android:layout_height="match_parent"/>
        </android.support.v4.widget.DrawerLayout>
    </FrameLayout>
    
  2. 嵌入根目录内的第二个抽屉布局 android.support.v4.widget.DrawerLayout

  3. 示例xml

    <android.support.v4.widget.DrawerLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!--your content -->
        <ScrollView
            android:id="@+id/frame_layout_drawer_left"
            android:layout_width="0dp"
            android:layout_height="match_parent"/>
    
        <android.support.v4.widget.DrawerLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <ScrollView
                android:id="@+id/frame_layout_drawer_right"
                android:layout_width="0dp"
                android:layout_height="match_parent"/>
        </android.support.v4.widget.DrawerLayout>
    
    </android.support.v4.widget.DrawerLayout>