drawerLayout是支持库包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,谷歌借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。
<强>使用步骤:强>
创建一个DrawerLayout
为了添加导航抽屉,你需要在你的布局界面中声明一个DrawerLayout对象作为布局的根节点。同时在DrawerLayout内部添加两个观点:
-
<李>添加一个视图,它包含应用的主内容(当抽屉隐藏时你的主要布局);李>
<李>添加另一个视图它包含了导航抽屉。
李>
如下面例子所示:该布局使用了DrawerLayout它包含了两个子节点:一个FrameLayout它包含了主要内容(在运行时将会被碎片替换)和一个列表视图作为导航抽屉,上面titlebar上图标,负责打开、关闭抽屉。
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; RelativeLayout xmlns: android=" http://schemas.android.com/apk/res/android " xmlns:工具=" http://schemas.android.com/tools " android: layout_width=" match_parent " android: layout_height=" match_parent " 比; LinearLayout & lt; 面向android:="水平" android: layout_width=" match_parent " android: id=癅 + id/titleBar” android:重力=" center_vertical " android:背景=" @android:颜色/darker_gray” android: layout_height=" 40 dp”比; & lt; ImageView android: layout_width=" wrap_content " android: layout_height=" wrap_content " android: src=" https://www.yisu.com/zixun/@drawable ic_drawer " android: onClick=" onClickDrawerOpened " android:点击=" true " android: id=癅 + id/imageView”/比; & lt;/LinearLayout> & lt; android.support.v4.widget.DrawerLayout android: id=癅 + id/drawer_layout” android: layout_below=" @ id/titleBar” android: layout_width=" match_parent " android: layout_height=癿atch_parent”比; & lt; !——主要内容视图——比; & lt; FrameLayout android: id=癅 + id/content_frame” android: layout_width=" match_parent " android: layout_height=" match_parent "祝辞& lt;/FrameLayout> & lt; !——导航抽屉——比; & lt;列表视图 android: id=癅 + id/left_drawer” android: layout_width=" 240 dp” android: layout_height=" match_parent " android: layout_gravity=翱肌? android:背景=" # 111 " android: choiceMode=" singleChoice " android:分频器=" @android:颜色/透明” android: dividerHeight=" 0 dp "/比; & lt;/android.support.v4.widget.DrawerLayout> & lt;/RelativeLayout>>之前上面这个例子包含了一些重要的布局技巧:
-
<李>主内容视图(FrameLayout在最上层)必须是Drawerlayout的第一个子节点因为XML在安排这些界面的时候是按照Z轴的顺序来安排的同时抽屉必须在主内容的顶部。李>
<李>主内容视图被设置成匹配父视图的宽和高,因为当导航抽屉隐藏的时候它要填充整个UI。李>
<李>导航视图(视图)必须被声明一个水平的重力借助属性android: layout_gravity。为了满足从右到左的约定,声明它的值为“开始”代替“左”(因此这个抽屉将会在右面呈现当布局是RTL时)李>
<李>在导航视图声明时:宽度用dp为单位,高度匹配父视图。为了保证用户无论怎样都能看到主内容的一部分,导航抽屉的宽度不能超过320 dp
李>
初始化抽屉列表
在你的活动中,要做的第一件事是初始化导航抽屉的列表项。具体该怎么做根据你应用的内容来定,但是导航抽屉通常包含一个列表视图,所以还需要一个相匹配的适配器(比如ArrayAdapter或者SimpleCursorAdapter)
下面的例子,告诉你该如何借助一个字符串数组来初始化一个导航列表
公开课MainActivity延伸活动{ 私人DrawerLayout mDrawerLayout; 私人ListView mDrawerList; 私人String [] mPlanetTitles; @Override 保护空白> 私人类DrawerItemClickListener实现视图。OnItemClickListener { @Override 公共空间> 公共空间alt=" android侧滑菜单控件DrawerLayout使用方法详解“>android侧滑菜单控件DrawerLayout使用方法详解