我花了很多时间试图找到ActionBarDrawerToggle
的问题,但问题出在我的主要布局中。
让我说明问题所在。
以下是示例,它在应用程序启动后的初始状态。
正如您所见,汉堡包存在但现在没有显示 如果出现滑动抽屉菜单。
它看起来应该是这样的,但是当它被调用时,它会突然消失,例如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与两个导航抽屉视图冲突
因为重力端对于什么样的视图并不重要,在这种情况下它不会显示汉堡包(如果存在重力端的视图)
请帮助解决这个问题,因为我不知道如何处理它,无论如何我需要两个抽屉。
任何帮助都将受到高度赞赏,谢谢。
答案 0 :(得分:1)
这是一个非常有趣的问题,但我认为我有一个解决方案。那2个解决方案,
您是否创建了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>
嵌入根目录内的第二个抽屉布局
android.support.v4.widget.DrawerLayout
。
示例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>