android 最简单的侧滑实现DrawerLayout

来源:互联网 发布:dota2能在mac上玩吗 编辑:程序博客网 时间:2024/06/07 12:17
drawerLayout是Support Library包中实现了侧滑菜单效果的控件,drawerLayout是MenuDrawer等的出现之后,google借鉴而出现的产物,drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现),还可以实现两边侧滑;
drawerLayout本身是一个布局控件,跟五大布局是一种东西,但是drawerLayout自己带有滑动的功能。只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效果。


xml布局如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/myorder_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/hui"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">


    <include
        android:id="@+id/mian"
        layout="@layout/select_product_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


    <include
        layout="@layout/myorder_saixuan"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fitsSystemWindows="true" />


</android.support.v4.widget.DrawerLayout>
上面的inlude是主页面的布局,下面的include是侧滑的布局
在侧滑的布局中有个属性layout_gravite="end"是调整右滑还是左滑,end是右,start是左;


在java代码中的监听:

  * 侧滑筛选菜单的监听
    * */
    private void MyDrawerLayoutListeren() {
        drawer.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
                                     @Override
                                     public void onDrawerClosed(View drawerView) {
                                         super.onDrawerClosed(drawerView);
                                       
                                      
                                     }


                                     @Override
                                     public void onDrawerOpened(View drawerView) {
                                         super.onDrawerOpened(drawerView);
                                      
                                     }
                                 }


        );
    }


第一个是侧滑关闭的监听,第二个是侧滑打开的监听


还有要注意的是物理返回键要进行处理,不然一点击返回就关闭activity了
@Override
public void onBackPressed() {


    if (drawer.isDrawerOpen(GravityCompat.END)) {
        drawer.closeDrawer(GravityCompat.END);
    } else {
        super.onBackPressed();
    }
}


最后实现点击触发侧滑:

drawer.openDrawer(GravityCompat.END);


值得一提的是代码中的END属性,他是代表右边的侧滑布局,如果使用的是左边的侧滑布局,就需要start了

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 赠送面积为违建怎么办 执法不管违建我怎么办 司法考试毕业院校写错了怎么办 家具店西安一直拖着不交货怎么办 派出所私自迁移了我家户口怎么办? 退房子不退押金怎么办 租房子中介不退押金怎么办 租房子押金不退怎么办 外地人签户口到武汉怎么办 开发商不给办土地证怎么办 房间里的油烟味怎么办 现金借款app还不了款怎么办 学校不允许实习生自己租房怎么办 盯盯拍开不了机怎么办 向私人借钱不还怎么办 微信好友借钱不还怎么办 支付宝借不了钱怎么办 支付宝借条关了怎么办 qq群不小心解散了怎么办 qq群解散了照片怎么办 出租屋没窗户很闷怎么办 二手房交税后房主不卖怎么办 二房东收不到租拖欠房租怎么办 房东不给换门锁怎么办 租房到期房东联系不到租客怎么办 廉租房名下有车怎么办 路边停车收忘记交费怎么办 考编忘记交费了怎么办 深圳公租房入库了接下来怎么办 公租房5年以后怎么办 教务系统密码忘记了怎么办 林科大教务处密码忘记了怎么办 智学号密码忘了怎么办 正方教务管理系统忘记密码怎么办 正方教务系统忘记密码怎么办 教务网密码忘了怎么办 电动车解除限速报警器不响怎么办 公租房住满5年怎么办 广州公租房收入超标怎么办 深圳法院拍卖房子不肯搬走怎么办 上海奉贤公租房的期满怎么办