位置: 编程技术 - 正文

Google官方抽屉DrawerLayout使用心得、踩坑经验以及定制化(google collections)

编辑:rootadmin
基础使用

推荐整理分享Google官方抽屉DrawerLayout使用心得、踩坑经验以及定制化(google collections),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:google抽奖的真实性,google chroom,google抽奖是真的吗,google抽奖是真的吗,谷歌抽索,google cho,google抽奖的真实性,google抽奖是真的吗,内容如对您有帮助,希望把文章链接给更多的朋友!

这里要介绍的是google的DrawerLayout,行为可见google官方应用如gmail,看手Q的抽屉,应该是根据android-undergarment项目来定制的一个控件。

Google Desgin GuildLines里面有介绍: a Navigation Drawer

DrawerLayout添加在主内容区的上层,作为parent,下面的第一个child是主内容区域,第二个child则可以是其他任何东西,需要作为抽屉的view则需要声明android:layout_gravity。

DrawerLayout的setScrimColor可以设置抽屉拉出时右侧主内容剩余区域上面盖的颜色(默认0x)。

高级应用

DrawerLayout默认只有在边缘的一个edge能够触发抽屉拉取的动作,而这个是通过ViewDragHelper这个类来实现的。

EDGE_SIZE是触发区域,默认dp,而BASE_SETTLE_DURATION和MAX_SETTLE_DURATION则是控制抽屉从打开到关闭之间的这个间隔。由于是私有静态常量,可以通过

Google官方抽屉DrawerLayout使用心得、踩坑经验以及定制化(google collections)

来设置左侧的触发区域,类&#;地可以修改右侧触发区域以及打开动画的间隔(当然你也可以直接去ViewDragHelper里面修改)。

不建议自己处理onTouch,会导致抽屉不能平滑跟手,比如stackoverflow上有给出以下这种方案的,简直坑爹:

坑爹的bug们初始化LayoutParam时可能出错多点触摸的时候DrawerLayout抛出一个ArrayIndexOutOfBoundsException,这是由于多点触摸时候requestDisallowInterceptTouchEvent和DrawerLayout的innerViews问题。自己在外面继承DrawerLayout然后改一下行为。有时候手动拉出抽屉时候,抽屉会卡在那里,拉不出来

这也是极其坑爹的一个bug,原因是触摸EDGE的时候,事件触发到抽屉出现有一个延时

抽屉有STATE_IDLE, STATE_DRAGGING和STATE_SETTLING三种状态,而这个偶然状况下,已经处于STATE_DRAGGING,而这个动作打开了抽屉dp并试图再次置回STATE_DRAGGING,

但这里由于mEdgeDragsInProgress[pointerId] & edge) == edge所以阻止了DrawerLayout回到STATE_DRAGGING。

解决方案是把DrawerLayout的ViewDragCallback中的mPeekRunnable进行修改,简单粗暴。

版权声明:本文为博主原创文章,未经博主允许不得转载。

ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.a Intent.ACTION_VIEW根据用户的数据类型打开相应的Activity。这里要打开一个网页,出现ActivityNotFoundException错误。android.content.ActivityNotFoundException:NoActivityfoundto

SparseArray 简介 SparseArray在写Android代码的时候发现当试图使用以int/Integer类型为key的HasMap的时候被提示使用SparseArray:UsenewSparseArrayObject(...)forbetterperformance查了一下,Spar

接入LeakCanary检测内存泄露 接入LeakCanary检测内存泄露前几天square在Github上发布了他们的内存泄漏检测库,LeakCanary,短短几天star已经接近,研究了一下后,发现其对QZone也很有

标签: google collections

本文链接地址:https://www.jiuchutong.com/biancheng/371060.html 转载请保留说明!

上一篇:应用MVP模式写出可维护的优美Android应用(mvp功能)

下一篇:SparseArray 简介(sparsomycin)

  • 五险一金代缴费
  • 不予认定一般纳税人
  • 销售软件税目
  • 收到以前年度银行手续费发票
  • 其他现代服务业能开哪些税目
  • 发票号码代码不合法
  • 上年城市维护建设税退税怎么记账
  • 长期借款利息计入应付利息吗
  • 配件的出口是否可以免抵退?
  • 采购是进项还是销项
  • 其他业务利润怎么算公式
  • 采用重置成本计量属性的税种是
  • 研发支出费用化支出每个月都要结转吗
  • 房地产开发桩基施工方案
  • 购进货物的价税怎么算
  • 机动车发票可以红冲重开吗
  • 普票每季度开多少免税
  • 企业所得税少交了被税局查到怎么处理
  • 预收账款增值税和消费税纳税时间
  • 我们4月10日
  • 免税更正申报
  • 外籍个税起征点
  • 民间非营利组织会计制度最新版
  • 实收金额比应收金额多
  • 保险营销员的佣金收入怎么交个税
  • 哪些项目可以在城镇开发边界外
  • 房产中介如何收取中介费
  • 客户退回货物会计分录
  • 公司房产税如何征收税率
  • 房地产开发有限公司英文
  • 计提长期待摊费用会计分录怎么写
  • fdisk分区工具怎么用
  • 预提收入的会计处理方法
  • 叶面积指数名词解释
  • 开源项目网站
  • 资金平衡表的编制方法
  • 蓝桥杯2021出结果
  • phpwebsocket框架
  • php floatval
  • 购入库存商品会计分录摘要
  • 个人所得税申报流程图
  • 运输公司燃油费占比
  • 营业额和营业收入怎么算
  • 网上申请发票要钱吗
  • mysql 锁详解
  • 一般纳税人进项销项抵扣如何做账
  • 小规模纳税人出租不动产免征增值税
  • 应收账款逾期什么意思
  • 期末结转主营业务成本
  • 2020年扶贫拨款
  • 筹建期间发生的所有费用
  • 实缴出资未注明投资款
  • 公司筹建期间允许投标吗
  • 营业外支出的性质
  • windows server 2003安装域控制器的方法
  • windows自带的
  • 科普知识大全
  • w10语言栏
  • fedora phpMyAdmin 安装方法及介绍
  • linux本地解析
  • windows重大更新
  • windows 10预览版
  • linux bye
  • jQuery插件下载
  • perl命令
  • unity 读取txt
  • js canvas绘制图片
  • js 和html
  • [android] intent实例
  • Linux中删除文件夹的正确方式
  • 电脑启动项清理
  • 首次安装操作系统称为什么盘
  • node 多线程
  • python爬虫从入门到精通
  • c#入门实例
  • js工具类库
  • 企业所得税国家和地方分配比例
  • tbc法力陵墓入口
  • 新疆税务服务网
  • 泉州市税务局投诉电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设