位置: 编程技术 - 正文

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)

  • 自然人独资企业有公司章程吗
  • 税务机关帮我预填了申报数据,我是不是就不用申报了?
  • 企业所得税怎么征收几个点
  • 合伙企业投资收益做账
  • 国际机票可以抵扣进项税吗
  • 收到商业承兑汇票到期,向银行办妥有关入账手续
  • 合伙制创投企业
  • 买入返售金融资产什么意思
  • 付了定金一定会有货吗
  • 不带息票据贴现计算公式
  • 工业企业成本结构
  • 单位聘请临时工工资怎么报税
  • 财政返还政策
  • 个人土地征收款协议模板
  • 坏账损失如何连续计提
  • 资源税纳税期限按月还是按季
  • 超市预付卡过了还能退吗
  • 怎么进行现金流量分析
  • 上月留抵进项抵扣分录
  • 暂估材料太多怎么办
  • 被投资企业所在地什么意思
  • php文本转数字
  • 银行存款调账怎么调
  • linux sl
  • 月末结转未分配利润吗
  • 长期借款利息费用的资本化账务处理
  • 向境外支付技术服务费怎里面的增值税怎么入账
  • 什么手机最薄最有手感
  • 公司支付员工工伤医疗费怎么入账
  • 商品流通企业商品销售成本计量方法有
  • 购入增值税税控系统专用设备
  • 财务管理是如何工作的
  • 若依项目制作饼状图和柱状图
  • thinkphp5.0框架
  • flex布局实战
  • 20年电赛c题
  • js框架jquery
  • 汇算清缴补交所得税怎么做凭证
  • 进项税加计抵减是什么意思
  • pd python
  • python多线程多核
  • 税务法新规
  • 个体工商户季开票30万是否缴纳个人所得税
  • 偷税行为如何处理
  • 公墓造价成本
  • 一般纳税人季度所得税怎么计算
  • 研究费用记入什么费用
  • 法院强制执行扣完款就完事了吗
  • 免税企业开了含税吗
  • 收客户利息怎么处理
  • 旅行社代订的机票可以抵扣吗
  • 培训费产生的差额是什么
  • 停车费专用发票
  • 亏损太多账务如何处理
  • 公司买车贷款要看法人征信吗
  • 关于职工住房补贴相关文件及规定
  • 安装mysql的总结
  • windows7内部版本7601激活密钥
  • win2000停止服务
  • xp硬盘安装win7系统教程
  • windows10的便签纸在哪
  • win10周年更新版是什么意思
  • linux连接windows的服务redis
  • win7开机时出现一堆英文
  • linux vmware命令行
  • win7系统无法安装
  • linux在vim编辑器中,将光标移动
  • jquery链式操作原理
  • node.js安装后自带哪个工具
  • shell的case语法
  • shell 数组变量
  • linuxssh免密登录
  • android binary xml
  • jquery版本过低
  • js dom操作方法
  • 查看项目层级结构怎么查
  • jquery数据绑定
  • auto.js获取剪切板内容
  • 湖北税务投诉电话
  • 统一社会信用代码证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设