Navigation Drawer DrawerLayout 安卓导航抽屉

本文介绍了如何在Android应用中实现Navigation Drawer,包括导入android-support-v4.jar包,设置DrawerLayout,初始化ListView内容,以及监听Drawer的打开和关闭事件。同时提到了ActionBarDrawerToggle的使用,以及根据Drawer状态调整ActionBar的内容。提供了ActionBar图片资源的下载链接。
摘要由CSDN通过智能技术生成

先上图看效果



现在很多的应用都已经实现了,这种左侧侧滑菜单,同时也可以点击ActionBar左上角的三个横杠来显示或隐藏侧滑菜单.其实Android官方也已经提供了这个功能.下面我们就来学习一下怎么使用官方的API.

1. 导入官方的android-support-v4.jar包

2. 修改MainActivity的layout文件,把android.support.v4.widget.DrawerLayout做为XML文件的根节点. 因为DrawerLayout是我们能够实现Navigation Drawer的关键所在. 然后在里面添加两个元素,一个用作主界面来显示内容(当Navigation Drawer隐藏的时候), 另一个用来显示Navigation Drawer 的内容. 如下所示: 

<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">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
有一下几点需要注意:

* 显示内容的元素必须是DrawerLayout的第一个子元素(例如,上例中的FrameLayout)

* 显示内容的元素的宽和高属性,必须设置为match_parent, 这是因为当Navigation Drawer隐藏的时候,它会铺满整个界面(例如,上例中的FrameLayout)

* 显示Drawer内容的元素必须指定layout_gravity属性. 一些语言(如阿拉伯语和希伯来语)要求文本布局和应用布局必须采用从右到左 (RTL) 的读取顺序,这时候属性值就要填入"start",而不是"left".(我测试了一下,填入start一定不会出错,但是如果填入right就会报错,应该是大陆的机器默认都是从左往右的顺序吧.)(例如,上例中的ListView)

显示Drawer内容的元素高度可以使用match_parent,宽度最好不要超过320dp,因为这样当Drawer打开的时候,用户还可以看到后面的主界面的一部分,用户体验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值