View—drawerLayout学习

drawerLayout是什么

drawerLayout是一个布局控件,跟LinearLayout等控件是一样;drawerLayout具有滑动的功能,一般用来实现侧滑菜单

怎么用

  1. 和其他布局一样,但是需要作为根布局使用
  2. 宽高必须是 match_parent
  3. 第一个子布局作为主页面布局内容
  4. 第二个子布局作为侧滑菜单的布局

一:布局

<?xml version="1.0" encoding="utf-8"?>
<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">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name3"/>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="start"
    android:background="@color/colorWhite">

    <TextView
        android:id="@+id/drawer_menu1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/app_name2"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>复制代码

事件监听

通过 addDrawerListener 来添加监听事件,监听侧滑的打开或者关闭

DrawerListener的可选项有

  1. DrawerLayout.DrawerListener
  2. ActionBarDrawerToggle—能做DrawerListener 的所有事情,同时能将drawerLayout的展开和隐藏与actionbar的app 图标关联起来
  3. DrawerListener的子类SimpleDrawerListener—这个类的时候不必实现全部的回调函数,根据自己的需要重写即可
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {

    }

    @Override
    public void onDrawerOpened(View drawerView) {

    }

    @Override
    public void onDrawerClosed(View drawerView) {

    }

    @Override
    public void onDrawerStateChanged(int newState) {

    }
});复制代码

要点

主内容布局

  1. 宽度和高度必须都是match_parent**
  2. 不能使用layout_gravity属性

侧滑布局

  1. 必须使用 layout_gravity 属性,可选项 left 、right 或者 start、end

参考

www.jcodecraeer.com/a/anzhuokai…

www.jianshu.com/p/65f268f01…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值