位置: 编程技术 - 正文

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)

  • 多缴纳的附加税可以以后期间抵扣吗
  • 金税四期正式启动
  • 出差补贴要不要发票
  • 房地产涉及的税种和税率
  • 基本户被冻结怎么缴投标保证金
  • 收到退税如何记账
  • 税控盘怎么增加专票
  • 自然人税收管理扣缴端申报实训心得
  • 领料投入生产会计分录
  • 业务分成方案
  • 增值税普通发票税率
  • 免税销售额收入不含税收入怎么算
  • 增值税开票流程图解
  • 烟草生产者消费税计算方法
  • 同一个月两家单位交公积金
  • 整体购买企业资产涉及哪些税
  • 建筑挂靠管理费用如何账务处理?
  • 飞机票可以直接去机场买吗
  • linux耳机插拔检测
  • 费用报销单正确填写格式
  • 进口代理流程
  • 存货对外销售会计分录
  • unix和linux适用于
  • win11怎么用win10界面
  • 购货方销售退回怎么做账
  • PHP If Else(elsefi) 语句
  • win10右键没有新建excel和word
  • 共管账户的定义
  • 支付货款怎么做凭证
  • 对于个体工商户不需要满足累计经营三个月以上的条件
  • phprestfulapi框架
  • 预收账款增值税纳税义务
  • wordpress shortcode
  • springboot整合ssm
  • JavaScript charCodeAt() 方法
  • 随手写-精美笔记本-日记本安卓下载
  • linux执行php脚本
  • 帝国cms如何使用
  • 公司主营业务和经营范围的区别
  • 应收利息可以计入其他应收款吗
  • 兼职费用怎么入账报销
  • 现金流量表要填满吗
  • python文件间传递参数
  • 怎么把其他应收款借方余额转出
  • 固定资产处置增值税政策
  • 开增值税发票可以做三方协议吗?
  • sql join 语句
  • sqlserver的replace
  • 车辆购置税相关法律规定
  • 员工垫付的费用没有发票,放在工资里可以吗
  • 递延所得税资产和所得税费用的关系
  • 如何冲其他应付款发票
  • 货样广告品出口如何申报
  • 本年利润的会计科目
  • 固定资产税法折旧年限规定
  • 11个点增值税发票是多少
  • mysql5.7.27安装
  • centos rpm命令
  • sqlserver2000企业管理器自动关闭
  • 使用灭火器人要站在上风口还是下风口
  • ubuntu中运行c程序
  • debian启用ssh
  • 字符集 linux
  • centos6 service
  • ias.exe是什么程序
  • win8开始屏幕设置
  • 安装windows 8.1
  • win8操作
  • windows8怎么关闭广告弹窗
  • JavaScript中数组长度的属性
  • Extjs Label的 fieldLabel和html属性值对齐的方法
  • apk防止反编译
  • python生成密钥
  • [置顶]马粥街残酷史
  • 完美解决雷电模拟器卡顿
  • 湖南省电子税务局登录
  • 国航的电子票号是什么
  • 浙江税务网上开票流程图
  • 1国家税务总局
  • 江西鹰潭潭花酒60度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设