首页
学习
活动
专区
圈层
工具
发布

Android开发之DrawerLayout实现抽屉效果

谷歌官方推出了一种侧滑菜单的实现方式(抽屉效果),即 DrawerLayout,这个类是在Support Library里的,需要加上android-support-v4.jar这个包。...使用注意点 1、DrawerLayout的第一个子元素必须是默认内容,即抽屉没有打开时显示的布局(如FrameLayout),后面紧跟的子元素是抽屉内容,即抽屉布局(如ListView)。...4、打开抽屉: DrawerLayout .openDrawer(); 关闭抽屉:DrawerLayout.closeDrawer( ); 一个典型的布局实例: 中根据抽屉菜单 切换Fragment--> FrameLayout android:id="@+id/fragment_layout" android...> 这里存放的是ListView,下面会讲配合 Android M推出的NavigationView 遇到的问题 1、在点击DrawerLayout中的空白处的时候,底部的content会获得事件。

8.5K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Material Design 实战 之第二弹——滑动菜单详解&实战

    DrawerLayout 控件用处:实现滑动菜单 1.1 首先它是一个布局,在布局中允许放入两个直接子控件, 第一个子控件是主屏幕中显示的内容;...中(DrawerLayout标签下的第二个直接子控件的android:layout_gravity值)定义的一致,我们传入了GravityCompat.START; 1.2.6 实际上Toolbar...然后调用DrawerLayout的openDrawer()方法将滑动菜单展示出来; 注意openDrawer()方法要求传入一个Gravity参数,为了保证这里的行为和XML中定义的一致,我们传入了GravityCompat.START...menu是用来在NavigationView中显示具体的菜单项的; headerLayout则是用来在NavigationView中显示头部布局的。...我们可以在这个方法中写相应的逻辑处理,不过这里并没有附加任何逻辑,只是调用了DrawerLayout的closeDrawers()方法将滑动菜单关闭,这也是合情合理的做法。

    1.3K30

    DrawerLayout实现网易新闻抽屉效果

    个人感觉网易的客户端比较前卫,有很多新鲜的东西,有时候模仿这些好的客户端能学到很多东西 开始今天的主要课题,下面是网易客户端抽屉模式实现的效果 其实有个Drawerlayout这个布局,你得问题就已经解决掉一大半了...,Drawerlayout布局本身就提供了左划和右划的功能 先上代码,然后慢慢解答,看完这篇博客你就知道Drawerlayout怎么用了 首先上逐步局文件代码 <android.support.v4..." android:layout_height="match_parent" > FrameLayout android:id="@+id/fragment_layout...> Drawerlayout是Androidv4包里自带的,既然是自带的那么直接拿来用就可以了,当然前提是你得工程里有v4包 下面解释上面的布局文件,让你懂得Drawerlayout用法,首先Drawerlayout...不懂留言,我认真为你解答 下面在贴一下主界面的代码,你看懂Drawerlayout用法其余的就很简单了,妈妈再也不懂担心你的学习了 package com.sdufe.thea.guo; import

    1.7K50

    Android材料设计Material Design 开篇前言

    ,而不是谷歌闲着没事弄个东西刁难我们 所有的代码都我都亲自测试过,文章的语言也尽量用我的话来叙述,大量的动图和图片也是我一个一个截的 属性介绍以xml里为主,代码中动态设置使用`setXXX`即可...Android材料设计之AppBarLayout+CoordinatorLayout Android材料设计之CollapsingToolbarLayout+Palette Android材料设计之DrawerLayout...(FrameLayout之魂) 额外依赖:implementation 'com.android.support:design:27.1.1' ?...com.android.support:design:27.1.1' CollapsingToolbarLayout1.gif CollapsingToolbarLayout.gif ---- 10.DrawerLayout...DrawerLayout.gif ---- 11.NavigationView资料卡片: 国籍:View 城市:ViewGroup(FrameLayout) 爱好:装东西 一句话:我就是我,不一样的自我

    1K10

    DrawerLayout详解「建议收藏」

    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。...DrawerLayout.closeDrawer方法用于隐藏侧边菜单,DrawerLayout.openDrawer方法用于展开侧边菜单(参见第3点中的代码部分) 5.如何在菜单展开或者隐藏的时候更新...activity的menu 上面的的第2点讲到DrawerLayout.DrawerListener监听展开与隐藏事件,在监听的回调方法中我们用invalidateOptionsMenu通知activity...一般的想法是在activity的onOptionsItemSelected方法中判断点击事件是否来自于app图标,然后用DrawerLayout.closeDrawer和DrawerLayout.openDrawer...最后我们来看看一个完整的drawerLayout的例子,来源于官方网站的demo,代码中反映了上述我们提到的所有要点: Activity: /* * Copyright 2013 The

    3.1K10

    实现滑动菜单

    参考文献:《第一行代码(第2版)》 主要内容 ---- 1.使用DrawerLayout控件搭建基础框架 2.使用NavigationView优化滑动菜单页面 步骤概要 ---- 1.使用DrawerLayout...控件搭建基础框架 新建一个空项目,修改主布局文件如下,DrawerLayout中放置了两个直接子控件,第一个字控件是FrameLayout,用于作为主屏幕中显示的内容,第二个控件这里使用了一个TextView...,用于作为滑动菜单中显示的内容: ?...用来自NavigationView中显示具体的菜单项; 2)headerLayout。用来在NavigationView中显示头部布局的; 下面开始操作, 新建一个布局文件,编写如下代码: ?...现在menu和header都准备好了,可以使用NavigaView了,修改activity_main.xml中的代码,如下: 其中我们可以看到,如图中27-28行,我们将准备好的menu和header设置到

    2.1K20

    陪伴了你N年的控件等你来看—DrawerLayout

    这种方式即节省了屏幕空间,又实现了好看的动画效果,比如我们一直在用的扣扣的左侧菜单效果~ DrawerLayout是 SupportLibrary包中实现了侧滑菜单效果的控件。...在之前的应用中,实现侧滑菜单功能大多是通过开源库SlidingMenu来实现,后来谷歌在V4包中添加了 DrawerLayout来实现这个功能,完全可以替代 SlidingMenu。...1.基本使用 对于 DrawerLayout来说,从它的名字就可以看出来它是一个布局,继承自 ViewGroup,在布局中允许放入两个直接子控件,第一个子控件为主屏幕中显示的内容,第二个子控件是侧滑菜单中显示的内容...上图代码中,最外层控件使用了 DrawerLayout,其包裹了两个子控件,我们可以根据实际项目需求修改成自己的布局样式,自行定义。...2.代码控制及监听 上述示例中,只有在屏幕左边缘处进行拖拽,才可显示侧滑菜单,有时用户并不知道有此功能,这就需要我们通过按钮的点击操作,控制 DrawerLayout的显示或隐藏。

    78230

    Material Design 实战 之第四弹 —— 卡片布局

    实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉。...CardView由于是一个FrameLayout,因此它没有什么方便的定位方式,这里只好在CardView中再嵌套一个LinearLayout,然后在LinearLayout中放置具体的内容。...,数组存放多个Fruit的实例,每个实例代表一种水果; 在initFruits()方法中,先清空fruitList中的数据,再使用一个随机函数,从刚才定义的Fruit数组中随机挑选一个水果放入到fruitList...,CoordinatorLayout就是一个加强版的FrameLayout, 而FrameLayout中的所有控件在不进行明确定位的情况下,默认都会摆放在布局的左上角,从而也就产生了遮挡的现象。...不过这里使用的是DesignSupport库的CoordinatorLayout而不是FrameLayout,自然会有更加巧妙的解决办法。

    3K10

    关于Android导航页开发的体会

    大家好,又见面了,我是你们的朋友全栈君。...2019独角兽企业重金招聘Python工程师标准>>> 最近尝试做一个有社交网络服务和IM服务的项目,想使用比较流行的方式实现程序的导航,一开始 借鉴了网上的DrawerLayout加ViewPager...的模式,但始终觉得界面不够直观,于是改变想法,采用 了底部大类导航栏加顶端Tab小类导航加ViewPager的导航模式,有点像微信的导航模式(某种程度上来 说有完全不像,笑),主要涉及到ViewPager...方法中给出Fragment的切换规则 使用selector为RadioButton设置触发时的响应 Fragment内容填充的一个FrameLayout布局中(注意设置layout_weight...) { return super.getItemPosition(object); } } 在setAdapter时注意使用getChildFragmentManager,因为如果在Fragment中嵌套

    53920

    android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案

    问题描述 在平时开发的过程中,有时候会遇到FrameLayout或者LinearLayout父布局点击没反应,原因就是FrameLayout或者LinearLayout 里边包裹的子控件比较多,比如有...TextView、ImageView、Button、CheckBox等控件,在你点击父布局时如果没反应, 绝大部分原因就是这些子控件响应了点击事件,所以就会导致你的FrameLayout或者LinearLayout...那么为什么会发生这种问题呢,原因呢是因为在处理click事件的时候,默认情况下,首先是由父元素去捕捉(不会立即执行),如果子元素有响应click事件的能力的话,父元素就不会处理click事件,会直接将捕捉到的...下面就给大家说两种比较常用的解决方案 解决方案 方案一 在所有子控件的xml中加上:android:clickable=“false” (设置控件不可点击) 当把子控件的属性设为android:clickable...="false"的时候,子控件就没有处理click事件的能力了,父布局就会自己来执行点击事件,而不再把click事件交给子控件了。

    1.9K20

    1. Android_Jetpack组件---Naviagtion源码解析

    基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...2.1.2 ToolBar和NavHostFragment DrawerLayout配置好之后,我们再来配置标题栏,之前我们的用法都是在中间加一个存放Fragment的容器,有可能是FrameLayout...、setupWithNavController进行关联绑定 到此,我们的基本配置就结束了,可以看到我们drawerlayout中的首页和代码按钮点击会切换对应的fragment,同时toolbar的汉堡按钮和返回按钮也会自动切换...没错,就是我们在xml布局中设置的那一个。...中的每个fragment的相关信息: ?

    2.4K10

    1. Jetpack源码解析---看完你就知道Navigation是什么了?

    基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...2.1.2 ToolBar和NavHostFragment DrawerLayout配置好之后,我们再来配置标题栏,之前我们的用法都是在中间加一个存放Fragment的容器,有可能是FrameLayout...、setupWithNavController进行关联绑定 到此,我们的基本配置就结束了,可以看到我们drawerlayout中的首页和代码按钮点击会切换对应的fragment,同时toolbar的汉堡按钮和返回按钮也会自动切换...没错,就是我们在xml布局中设置的那一个。...中的每个fragment的相关信息: ?

    2.9K30
    领券