就像Android开发者的页面上说的
用户可以通过从屏幕左边缘滑动或通过触摸操作栏上的应用图标将导航抽屉带到屏幕上。
但奇怪的是,我的活动上的导航抽屉对滑动动作没有反应。它只在触摸操作栏上的图标时切换。下面是我对导航抽屉的实现
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
// Set up the drawer.
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
drawerLayout);
对此有什么可能的解释吗?我怀疑的是我的活动默认有它的一个片段的布局。所以这是原因吗?
编辑:我的活动的布局文件
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainPage">
<!-- The main ocntent view -->
<FrameLayout android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!-- The navigation drawer-->
<fragment android:id="@+id/navigation_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:divider="@android:color/transparent"
android:name="com.example.android.handsfree.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer" />
您的“NavigationDrawerFragment”已经在其“setup”方法中为您创建了一个抽屉切换。
您不应该在您的“MainPage”活动中创建一个新的。
注意:您可以使用android.support.v7.app.ActionBarDrawerToggle
而不是NavigationDrawerFragment
中的v4版本。
问题现在似乎解决了。有两个问题:
MainPage
活动中创建了第二个抽屉切换,但在NavigationDrawerFragment
的setUp方法中已经创建了一个抽屉切换,该方法由MainPage调用以设置抽屉。(这基本上是将一些抽屉材料外包给抽屉片段。)lock_mode_locked_closed
的方法,在OnCreateOptionsMenu
中锁定了抽屉。他从未恢复此更改。二等 三等
有没有办法禁用滑动手势来打开导航抽屉?在标签之间滑动时出现菜单真的很烦人。
我想从右到左像图片一样打开
首先,我知道这个问题以前在这里出现过,但试了很多,还是没有成功。我在Android开发者网站上做这个例子。 你能帮我弄清楚我的代码中的问题是什么,为了设置菜单从右边打开,以及为了将操作栏按钮移到右边,我应该做些什么改变吗? xml代码如下所示:
有可能吗? 更新:是的,使用工具栏小部件我看到边距。但我有另一个问题:这是白色的导航抽屉 但是当我使用 我看到黑色的背面图标 我可以以编程方式将后退按钮设为白色吗?或者仅使用自定义图标?
我一直在遵循谷歌的导航抽屉指南,我想把它添加到一个带有标签和手势的活动中。 我想禁用打开导航抽屉的手势,有人知道怎么做吗?