• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 浅谈DrawerLayout抽屉效果,drawerlayout抽屉

浅谈DrawerLayout抽屉效果,drawerlayout抽屉

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了drawerlayout,drawerlayout的使用,android drawerlayout,drawerlayout 侧滑,安卓drawerlayout等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

浅谈DrawerLayout抽屉效果,drawerlayout抽屉


DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果。

实现效果如下:

因为是官方提供的,所以使用起来也相对的比较简单。

DrawerLayout 提供

1、当界面弹出的时候,主要内容区会自动背景变黑,当点击内容区的时候,抽屉布局会消失

2、在屏幕边缘手势滑动 会拉出抽屉布局

注意:当按后退键的时候,如果抽屉布局正在显示,则需要关闭抽屉布局

 

用一个简单的Demo介绍下:

--------------------------------------------------------------------------------------------

首先布局文件:

布局分为三部分,左中右。中间的是APP显示的主要内容区,然后看你个人的需求来选择是要左边弹出布局,还是右边弹出布局。

如果选择是左边弹出界面还是右边弹出界面,只要给弹出界面设设置 

android:layout_gravity="left"  或者 android:layout_gravity="right" 就可以了

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     tools:context=".DrawerActivity" >
 7 
 8 
 9     <android.support.v4.widget.DrawerLayout
10         android:id="@+id/drawer_layout"
11         android:layout_width="match_parent"
12         android:layout_height="match_parent"
13         >
14 
15         <!-- The main content view -->
16      <!-- 界面主要内容布局区 -->
17         <FrameLayout
18             android:id="@+id/content_frame"
19             android:layout_width="match_parent"
20             android:layout_height="match_parent" >
21 
22             <Button
23                 android:id="@+id/btn"
24                 android:layout_width="match_parent"
25                 android:layout_height="wrap_content"
26                 android:text="open"
27                 />
28         </FrameLayout>
29 
30         <!-- The navigation drawer -->

      <!-- 左边弹出布局区 -->
31 <LinearLayout 32 android:layout_width="100dp" 33 android:layout_height="match_parent" 34 android:orientation="vertical" 35 android:layout_gravity="left" 36 android:background="#fff" 37 > 38 <TextView 39 android:layout_width="wrap_content" 40 android:layout_height="wrap_content" 41 android:text="DrawerLayout抽屉效果" 42 /> 43 <TextView 44 android:layout_width="wrap_content" 45 android:layout_height="wrap_content" 46 android:text="文本" 47 /> 48 <Button 49 android:layout_width="wrap_content" 50 android:layout_height="wrap_content" 51 android:text="按钮"/> 52 </LinearLayout> 53 54 </android.support.v4.widget.DrawerLayout> 55 </LinearLayout>

 

然后看activity代码:

只要  mDrawerLayout.openDrawer(Gravity.LEFT);  便可以实现弹出抽屉界面

注意重写后退按钮响应事件,当抽屉布局显示的时候要先关闭抽屉布局

public class MainActivity extends Activity {

    private DrawerLayout mDrawerLayout = null;

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

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

        Button button = (Button) findViewById(R.id.btn);
        button.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                // 按钮按下,将抽屉打开
                mDrawerLayout.openDrawer(Gravity.LEFT);

            }
        });

        mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
            /**
             * 当抽屉滑动状态改变的时候被调用
             * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。
             * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE
             */
            @Override
            public void onDrawerStateChanged(int arg0) {
                Log.i("drawer", "drawer的状态:" + arg0);
            }

            /**
             * 当抽屉被滑动的时候调用此方法
             * arg1 表示 滑动的幅度(0-1)
             */
            @Override
            public void onDrawerSlide(View arg0, float arg1) {
                Log.i("drawer", arg1 + "");
            }

            /**
             * 当一个抽屉被完全打开的时候被调用
             */
            @Override
            public void onDrawerOpened(View arg0) {
       



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 2.6.4 DrawerLayout(官方侧滑菜单)的简单使用
  • 浅谈DrawerLayout抽屉效果,drawerlayout抽屉
  • android 5.X Toolbar+DrawerLayout实现抽屉菜单
  • DrawerLayout的openDrawer()和closeDrawer()方法,drawerlayout
  • 【React Native开发】React Native控件之DrawerLayoutAndroid抽屉导航切换组件讲解(13)

相关文章

  • 2017-05-26traceroute和tracert的区别
  • 2017-05-228.1.3 Android中的13种Drawable小结 Part 3
  • 2017-05-26Spark的调度策略详解
  • 2017-05-26精品干货丨APP常用导航框架,干货丨app导航
  • 2017-05-26读《重构手册》-重构之姊妹篇有感,《重构手册》姊妹篇
  • 2017-05-26Android 手机卫士10--应用管理器,android10--
  • 2017-05-26Application,applicationform
  • 2017-05-26Webview内存泄漏解决办法1,webview泄漏
  • 2017-05-26手机安全卫士——缓存清理,安全卫士缓存清理
  • 2017-05-26PigeonCall:一款Android VoIP网络电话App架构的介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【微学堂】第22期| Nginx的性能优化
    • 浅谈Android Small插件化框架源码
    • Android和JavaScript相互调用的方法,androidjavascript
    • 组件RecyclerView的应用(一),组件recyclerview
    • 单机搭建Android开发环境(二),单机搭建android开发
    • 8.1.1 Android中的13种Drawable小结 Part 1
    • Android中对Handle机制的理解
    • Android pulltorefresh使用,androidpulltorefresh
    • 多线程中使用curl致coredump问题
    • Android Studio添加Parcelable序列化小工具(快速提高开发效率)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有