博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从ViewDragLayout中学到的一些事实
阅读量:5953 次
发布时间:2019-06-19

本文共 772 字,大约阅读时间需要 2 分钟。

  1. View的onLayout方法画出的界面,与这个View在Xml中给定的LayoutParams的关系是,onLayout只关心显示什么,而XML中写的高度宽度事实地规定了View的大小和位置。相当于在View上挡了一个遮罩。

  2. 如何获取一个超出高度大于屏幕范围的ScrollView的高度? getHeight和getMessuredHeight都不行。高度可以这么计算: int height = mScrollView.getChildAt(0).getBottom(); 因为ScrollView只能有一个子布局,所以获取它的Bottom相对于Top的值就是ScrollView真正的高度。

  3. 通常用这样的Math方法来规定一个数值的范围:

@Override		public int clampViewPositionVertical(View child, int top, int dy) {			int topBound = Math.min(mHeaderHeight, getHeight() - mScroll.getChildAt(0).getBottom());			int bottomBound = mMaxFinalTopHeight + SDKDisplayUtil.dip2px(50);			return Math.max(topBound, Math.min(top, bottomBound));		}复制代码
  1. getHeight获取的是onLayout的给定的。
  2. LinearLayout即便让它wrap content,包含了超越了整个屏幕的高度,getBottom()的时候仍然只能取到屏幕底部。

转载于:https://juejin.im/post/5a3133fc6fb9a04503101666

你可能感兴趣的文章
利用WCF改进文件流传输的三种方式
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
关于IT行业人员吃的都是青春饭?[透彻讲解]
查看>>
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
Android Intent传递对象为什么要序列化?
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>