我正在开发一个有标签结构的应用程序,并使用滑动动作来浏览标签页。
但现在,我想应用抽屉式布局。问题是抽屉式布局有滑动打开事件。我怎么可以删除这个事件?我的想法是抽屉只能通过按钮打开和关闭。这种情况是否可行? 谢谢!
我正在开发一个有标签结构的应用程序,并使用滑动动作来浏览标签页。
但现在,我想应用抽屉式布局。问题是抽屉式布局有滑动打开事件。我怎么可以删除这个事件?我的想法是抽屉只能通过按钮打开和关闭。这种情况是否可行? 谢谢!
只需要写就可以了
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
防止菜单响应手势
使用openDrawer
和closeDrawer
来改变菜单的可见性
默认情况下,除非您编写代码打开 Drawer
,否则 DrawerLayout 不会在视图中显示,直到触发滑动事件。
从导航抽屉示例中可以看到,content_frame
用于使用片段动态显示视图。
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
在Fragment
的onCreateView()
方法中,您可以添加一个按钮,并为其设置OnClickListener
监听器,然后将以下代码放入其中:
//For me a better way in avoiding a `null pointer` in getting the DrawerLayout
final DrawerLayout drawer = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Opens the Drawer
drawer.openDrawer(Your View, Usually a ListView);
}
return false;
});
您也可以使用*来关闭抽屉。
drawer.closeDrawer(Your View, Usually a ListView);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawer.openDrawer(navigationView);
}
});
((YourMainActivity)getActivity()).selectItem(position);