DrawerLayout实现侧滑(简洁,高效)

效果图:

主布局文件my_order_new_list.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:background="@color/white"
                style="@style/BaseStyle">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        style="@style/BaseStyle">

        <!--订单列表布局-->
        <ListView
            android:id="@+id/lv_order"
            android:divider="@color/background_gray_standard"
            android:dividerHeight="@dimen/margin_standard"
            style="@style/BaseStyle.FullWrap"/>

        <!--右滑布局-->
        <include
            android:id="@+id/right_drawer"
            android:layout_width="260dp"
            android:layout_height="match_parent"
            android:layout_gravity="end"
            android:background="@color/primary"
            android:choiceMode="singleChoice"
            layout="@layout/drawer_order_select"/>

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

侧滑部分的布局文件drawer_order_select.xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/BaseStyle"
    android:background="@color/background_line_gray_light">

    <LinearLayout
        android:id="@+id/ll_select_bottom"
        style="@style/BaseStyle.FullWrap"
        android:orientation="horizontal"
        android:background="@color/background_gray"
        android:layout_alignParentBottom="true"
        android:padding="@dimen/margin_standard"
        android:gravity="right">

        <Button
            android:id="@+id/bt_select_clear"
            style="@style/BaseStyle.View"
            android:gravity="center"
            android:padding="@dimen/padding_medium"
            android:layout_height="@dimen/btn_height_large"
            android:textColor="@color/text_subtitle_standard"
            android:layout_marginRight="@dimen/margin_standard"
            android:background="@drawable/shape_rounded_corner_gray_line"
            android:text="@string/order_select_clear"/>

        <Button
            android:id="@+id/bt_select_confim"
            style="@style/BaseStyle.View"
            android:gravity="center"
            android:layout_height="@dimen/btn_height_large"
            android:padding="@dimen/padding_xmedium"
            android:textColor="@color/white"
            android:background="@drawable/rectangle_solid_cinnamomum"
            android:text="@string/order_select_done"/>
    </LinearLayout>

</RelativeLayout>

主页面代码:

public class MyBuyOrderActivity extends Activity{
    //侧滑布局
    private DrawerLayout mDrawerLayout;
    private RelativeLayout mRightLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_order_new_list);

        mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
        mRightLayout = (RelativeLayout)findViewById(R.id.right_drawer);

        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);//关闭手势滑动
    }

    @Override //菜单:筛选
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.select_order, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.select_order) {
            mDrawerLayout.openDrawer(mRightLayout);
        }
        return super.onOptionsItemSelected(item);
    }

    @Override//关闭侧滑页面
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (mDrawerLayout.isDrawerOpen(mRightLayout)) {
                mDrawerLayout.closeDrawer(mRightLayout);
            } else {
                return super.onKeyDown(keyCode, event);
            }
        }
        return true;
    }

}
时间: 2024-08-07 00:18:47

DrawerLayout实现侧滑(简洁,高效)的相关文章

Mockplus(摩客)- 简洁高效的原型图设计工具

Mockplus(摩客) 是一款简洁高效的在线原型图设计工具,很好的标题,基本说明了这篇文章的主要内容--! 原型设计是你对设计方案的一种直观的表达.也许你说,着跟你没啥关系.那我说个实际点的场景,小凡本人是做网站设计的,然后呢,各位卖家朋友向我表达他们对页面的设想的时候--方法各式各样,QQ 截图,Word,PPT,文本--最让我觉得难以面对的是 Excel,但是很多人喜欢用它,因为可以通过表格表达布局. 但是如果有一种只需要简单拖拽几个明确的图示加上文字就可以说的很清楚的方法,你还会又截图又

2015.1.15 利用Oracle函数插入表结构 Bulk collect into 不用循环,简洁高效

如果表结构只对应一个字段,可以 select col1 bulk collect into 变量,不用游标循环,简洁高效 create or replace function get_airway_subpoint(awid in number) return airway_subpnts_tab is --CREATE OR REPLACE TYPE AIRWAY_SUBPNTS_TAB  as table of number(11) v_ptns airway_subpnts_tab; --

jQuery --checkbox全选和取消全选简洁高效的解决办法

最近在公司做了一个小项目,其中有一个全选和取消全选的这么一个模块,搞了半天找不到一种最佳的解决方案!后来通过各种努力找到了一种简洁高效的解决办法,这里想和大家分享一下.有问题的话,还望各路大神指导一二. html代码如下: <fieldset data-role="controlgroup">  <label><input type="checkbox" name="boxes" id="select_al

A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景

写了三遍才AC,这真是对智商极大的侮辱 C++代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #include <set> #include <stack> #include <queue> #include <algorithm> #include &l

打造简洁高效的企业运行流程

市场萎缩.消费疲软.资金短缺--相信绝非一家企业的难题.如何破解市场困局,在实力相当.毅力相同的情况下,创新能力就成了取胜的关键.变革组织运行流程,实行流程重组,无疑是谋求企业发展的快捷方式之一.经济学家郎咸平教授2008年年底率先提出,国内企业要改变在全球产业链中6+1的地位,其中一项很重要的工作就是优化流程工序,提高产品附加值.郎教授惯于用通俗易懂的词句解释复杂的经济现象或管理理论.他曾用总结优化大厨制作"鱼香肉丝"的流程.提高饭店竞争力的例子,来说明流程优化对于企业发展的积极作用

最简单简洁高效的Json数据解析

一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parsejsondemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.List; /**

Material Design之NavigationView和DrawerLayout实现侧滑菜单栏

本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design包下的一个控件,该包下还有AppBarLayout.CoordinatorLayout.FloatingActionButton.SnackBar.TabLayout控件,也是Google在Android 5.x推荐规范式使用的控件.本系列将逐一介绍每个控件的使用... 好了,先来看看本文最终的效果

Adapter类控件使用之DrawerLayout(官方侧滑菜单)的简单使用

(一)概述 本节给大家带来基础UI控件部分的最后一个控件:DrawerLayout,官方给我们提供的一个侧滑菜单控件,和上一节的ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,既然Google为我们提供了这个控件,为何不用咧,而且在 Material Design设计规范中,随处可见的很多侧滑菜单的动画效果,大都可以通过Toolbar + DrawerLayout来实现~,本节我们就来探究下这个DrawerLayout的一个基本用法~还有人喜欢把他 称为抽屉控件~ (二)使

DrawerLayout建立侧滑时,显示侧滑页面,底层页面仍可以有点击响应,解决办法。

第一感觉是下层仍有焦点,解决办法应该是侧方页面出现后,下层页面的焦点改为false,应该是动态去改变焦点的状态,但是不知道如何去实现. 然后再网上找到实现方法,感谢:http://blog.csdn.net/qiang_xi/article/details/49329679 DrawerLayout的setDrawerListener()监听方法,该方法回调四个方法. onDrawerSlide,在滑动抽屉时 onDrawerOpened,在抽屉打开后 onDrawerClosed,在抽屉关闭状