位置: 编程技术 - 正文

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 GTK、KDE、Gnome、XWindows 图形界面区别介绍
  • 苹果macOS 13.3 RC 发河北承德市承德县华夏电器
  • 公司员工培训后的收获和感想
  • 电脑麦克风没声音是什么原因
  • et.exe进程占用
  • 角马群的迁徙方向
  • 火灾烧毁物品如何取证
  • 税收优惠方式有几种
  • php全局变量和局部变量
  • thinkphp3.x中display方法及show方法的用法实例
  • yolo v1 pytorch源代码
  • 论文如何学
  • 发票密码区如何调整
  • vue有哪些内容
  • php如何实现多进程
  • 长期待摊费用账务
  • 交印花税的口诀
  • 投资他人公司
  • 含消费税的商品开成了不含消费税怎么办
  • 给股东分配股利
  • 资产负债表应交税费为负数
  • 专票金额高于实收金额
  • 未开票收入如何计提增值税
  • 钢管租赁怎么算的
  • 以红字冲回
  • 税控技术维护费普通发票可以抵扣吗
  • 公司发放工作服怎么做账务处理
  • 服务类发票怎么做分录
  • 公司要注销账面怎么处理
  • 支付土地租金计入什么科目里面
  • 出口退税备案完事了,为什么还没有退税勾选那个模块
  • 从事国家重点扶持的公共基础项目
  • 单位买另一单位的保险
  • 固定资产报废需要税务备案吗
  • 注册资本金到位证明
  • 小加工厂怎么开发票
  • 低值易耗品与固废的区别
  • 商业仓储
  • 进项税额转出怎么操作
  • myeclipse中连接数据库的地方在哪
  • 路由怎么配
  • 解析包出现错误无法安装怎么办
  • unix含义
  • find linux命令详解
  • win10拖动窗口快捷键
  • 在linux系统中,用来存在系统所需
  • Win8系统32位和64位哪个好应该如何选择
  • javascript中对象一般由什么组成
  • 非常漂亮的英文怎么说
  • python scrapy爬虫
  • android实现推送
  • 批量ghost
  • unity的shader在哪儿
  • js中的类是什么
  • 手机安卓版本升级
  • android开源小项目
  • jquery访问本地html
  • 给个人佣金怎么避税
  • 计征土地增值税时需要以评估价格来确定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设