我正在开发具有标签结构的应用程序,并使用滑动动作在标签中移动。
但是现在,我想应用抽屉布局。问题是抽屉有滑动打开事件。我怎么能删除这个事件?我的想法是抽屉只能用按钮打开和关闭。这可能吗? 谢谢!
答案 0 :(得分:24)
只需写下
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
阻止菜单听取手势
并使用openDrawer
和closeDrawer
更改菜单可见性
答案 1 :(得分:15)
默认情况下, DrawerLayout 最初是从视图中隐藏的,除非您在触发滑动事件时放置代码以打开Drawer
。
在Navigation Drawer示例中,包含content_frame
用于使用片段动态显示Drawer
内的视图。
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
从Fragment
的{{1}}开始,您可以在某个地方添加一个按钮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;
});
答案 2 :(得分:1)
你可以这样写
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawer.openDrawer(navigationView);
}
});
答案 3 :(得分:0)
如果要在片段内点击按钮的抽屉项目之间导航, 你可以用这个
((YourMainActivity)getActivity()).selectItem(position);