位置: 编程技术 - 正文

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)

  • 行政事业性收据发票记帐
  • 工程款税率是多少专票
  • 汇算清缴调表不调账调的是哪张表
  • 以前年度损益科目核算业务
  • 中型企业什么意思
  • 公司用的摄像头
  • 小微企业享受减免税政策
  • 存款利率怎么算存一年后的金额
  • 其他综合收益为什么要结转
  • 公对公转账银行拒绝是什么意思
  • 发票已抵扣是什么意思
  • 免税和不征税货一样吗
  • 政府机关税号是1开头的吗
  • 政府机关有纳税识别号吗
  • 税控盘第一次使用
  • 建筑工程预收款预缴增值税的时间
  • 股东以股抵债是否合法
  • 车不入库扣几分
  • 应收账款周转率怎么分析
  • 营业收入与主营业务收入的区别与联系
  • 小微企业财务报表报送时间
  • 七喜v8笔记本
  • 临时工工资的会计处理
  • 法人不缴纳社保员工可以缴纳吗怎么办
  • 做胃镜多少钱了
  • npm info: node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
  • 冷门暴利行业
  • 稀有品种茅膏菜
  • 加工取得的存货和委托加工的区别
  • 如何检查路由器防火墙设置
  • php如何实现伪静态
  • 商业承兑可以去银行吗
  • 房地产企业预售期间广告费
  • 建筑业红冲发票如何处理
  • 微信公众号服务平台
  • websocket基于http
  • html零基础入门教程
  • 【机器学习】python实现吴恩达机器学习作业合集(含数据集)
  • 前端开发工程师是干嘛的
  • 股东投资的钱要还给他吗
  • c语言fread函数的用法示例
  • 关联广告是什么意思
  • 股东买房能在银行贷款吗
  • 抵债不动产处置如何征税
  • 纳税申报资料报表怎么填
  • 费用没有发票先开什么
  • 车辆通行费
  • 基建期罚款支出账务处理
  • 企业送员工的礼品
  • 民间非营利政府是指什么
  • 长期借款计提的利息可能借记
  • 投资性房地产租金税率是多少
  • 福利费可以不走应付职工薪酬吗
  • 保险赔偿款账务处理
  • 一般纳税人城建税怎么计算
  • 给员工购买的意外险可以税前扣除吗
  • 职工薪酬怎么核算
  • 广告公司个体户税率
  • 会计处理是会计分录吗
  • 全面解析皮炎
  • mysql查看查询耗时
  • vista win10
  • VISTA 下如何通过红外线连接外接设备 以索尼手机为例
  • linux 文件
  • win10系统应用和浏览器控制需要启用吗
  • 电脑系统xp怎么样
  • linux系统基础教程
  • linux手动设置ip指令
  • win8应用商店废了
  • win10系统无法安装到gpt分区
  • javascript中cookie
  • nodejs readdir
  • jquery放在head还是body
  • nodejs model
  • javascript判断题
  • 江苏省增值税专用发票怎么开
  • 河北省税金费率
  • 土地增值税采取什么税率
  • 北京买新车购置税怎么算
  • 2022年车船税减半政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设