DrawerLayout是Support V4 Library包中实现了侧滑菜单效果的控件, 可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。 DrawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。 1.设置布局 DrawerLayout的使用非常方便,由于是官方控件,所以不需要倒入第三方的开发包。相比较githup上的侧滑控件,使用起来 相对简单。DrawerLayout在使用中其实就相当于一个布局文件,跟LinearLayout、RelativeLayout等布局的使用方式类似,但是DrawerLayout可以实现滑动。先贴一段DrawerLayout的布局代码 这段代码只是简单展示DrawerLayout的布局如何使用。在这个布局文件中,需要注意的是,主视图一定要放在侧滑试图的前面,而且在侧滑视图中,需要有layout_gravity属性来<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 主视图 --> <RelativeLayout android:id="@+id/content_relat" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageButton android:id="@+id/imgBtn_tittle_amin1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/tittle_activity_backlogo" android:background="@mipmap/back2"/> </RelativeLayout> <!-- 侧滑视图 --> <RelativeLayout android:id="@+id/rela_drawlayout_main" android:layout_width="300dp" android:layout_height="match_parent" android:background="#005fcc" android:layout_gravity="start" android:clickable="false" > <ImageView android:id="@+id/img_user_main" android:layout_width="100dp" android:layout_height="100dp" android:background="@mipmap/logo" android:layout_centerHorizontal="true" android:layout_marginTop="56dp"/> </RelativeLayout> </android.support.v4.widget.DrawerLayout>
表明侧滑是从左边画出还是右边滑出的标志。
2.申明及拦截触摸事件
前面我们说到DrawerLayout是一个布局,那么其基本的用法就和其他布局类似了。布局文件加载后,只需要声明并获取里面
的控件就可随意使用。但是当我们在使用时,会发现当我们点击侧滑出来的菜单上空白部分时,背后的主视图相对的控件部分也会响应
事件,这时,我们需要阻止触摸事件的传递:把侧滑布局获得到并组织触摸事件的传递。//拦截触摸事件,阻止触摸事件的传递 rela_drawlayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } });
3.代码实现DrawerLayout的隐藏与显示
在开发中,我们有时需要点击按钮来操作侧滑部分的隐藏与显示,这时我们可以调用其 DrawerLayout.closeDrawer方法用于隐藏侧边菜单,
DrawerLayout.openDrawer方法用于隐藏和展开侧边菜单。case R.id.imgBtn_tittle_amin: drawerLayout.openDrawer(rela_drawlayout); break;
4.DrawerLayout相关详细介绍
本文只是介绍了DrawLayout的大致基本用法与初步了解,并没有作更加详细的介绍。下面我讲提供一些详细介绍的地址,供参考:
DrawerLayout详细介绍博客:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html
DrawerLayout详细视频介绍:http://www.jikexueyuan.com/course/449.html
另外 此处还有自定义侧滑菜单的实现:http://www.jikexueyuan.com/course/382.html
Android官方侧滑DrawerLayout用法
最新推荐文章于 2021-05-26 10:31:34 发布