位置: 编程技术 - 正文

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)

  • 进口货物账务如何处理
  • 计提环境保护税怎么做分录
  • 股东入股的标准
  • 资本金可以出借吗
  • 保障房异地建设费缴纳契税吗?
  • 补发工资计算公式
  • 坏账确认无法收回的会计分录
  • 外出经营预缴税款,回所在地如何申报
  • 付给供应商远期延期支票怎么做账?
  • 收到客户样衣定做款会计科目是什么?
  • 我是小规模企业客户要求开专票不开投诉
  • 房租发票进项税可以抵扣吗
  • 公司注销增值税在借方有余额怎么处理
  • 补交社保如何证明劳动关系
  • 销售退回冲减主营业务收入吗
  • 母公司并购子公司需要股东会决议吗
  • 购入原材料没有发票只有入库单
  • 公司停产检修2天扣年假
  • 1697511215
  • win11怎么看电脑配置
  • win11桌面图标怎么设置
  • 在windows7中,使用鼠标拖放功能
  • 信用证保证金会退还吗
  • 水利基金退税怎么做会计分录
  • cpuz.exe
  • 生产提供什么产品
  • 艾灸的好处与功效女人
  • 在承租土地上建房是否应核算为固定资产会计视野
  • layui 日期控件赋值
  • 海恩斯科普简介
  • 在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
  • php反射获取方法参数
  • php ajax 实现
  • pytorch基本操作
  • Element UI - v-infinite-scroll无限滚动组件
  • vuev-for循环k值的意义
  • python web开发方向的第三方库有哪些
  • php开发接口
  • Emiller's Advanced Topics In Nginx Module Development
  • 汽车年审检测费收费标准
  • 可供出售金融资产和交易性金融资产
  • 不是企业职工能否挂靠企业交社保
  • vue前端页面设计
  • 未按期兑现的合同缴纳印花税吗?
  • 上一年度的费用能入今年账吗
  • 公司应知应会的内容是什么
  • 股权变更如何交税
  • sql server2019实例功能的选择
  • 残疾人就业保障金
  • 法定盈余公积的主要用途
  • 银行承兑汇票套利案例
  • 股权转让怎么做账
  • 研究费用记入什么费用
  • 增值税普通发票和电子普通发票的区别
  • 贷款损失准备核销
  • 行政单位往来款规定
  • 库存不够如何结算成本
  • 施工方怎么开发票
  • 会计凭证传递的组织工作主要包括
  • mysql启动错误1067 进程意外终止
  • mysql5.7bug
  • freebsd联网
  • Windows XP with SP2/SP3 原版下载汇总
  • ubuntu怎么修改网络配置
  • 远程桌面的文件怎么无法复制到本地桌面
  • centos的安装步骤
  • 电脑操作系统win8
  • jquery和dom对象之间怎么转换
  • java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系
  • 将光标定位于输入端
  • 整型python
  • javascript教程完整版
  • python常见的格式化输出小结
  • unity3d基于物理系统的2D平台跳跃游戏
  • jquery网页设计作业
  • 国家税务总局朝阳税务局
  • 河北新农合怎么查询
  • 买辆12万的车上路共需要多少钱
  • 税收优惠政策能调动公众的捐赠积极性
  • 买车购置税去哪里交钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设