自定义控件里面获取控件的高度遇到的问题。
2015-11-17 15:10
423 查看
在自定义控件的时候需要获取到控件的初始高度
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
mDefaultHeight = parentHeight;
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
但是这里的自定义控件里面的子控件会不断的改变自己的高度,导致这里的mDefaultHeight不断的变化。
而这里需要做的仅仅是取得自定义控件的初始高度。然后子控件高度变化的时候,根据具体的情况
让自定义控件高度重新设置为mDefaultHeight。上面的代码问题在于每次它的子控件变化的时候,onMeasure都会被调用。
mDefaultHeight也会变化。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
if (!mInitializedFlag) {
mInitializedFlag = !mInitializedFlag;
mDefaultHeight = parentHeight;
}
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
mDefaultHeight = parentHeight;
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
但是这里的自定义控件里面的子控件会不断的改变自己的高度,导致这里的mDefaultHeight不断的变化。
而这里需要做的仅仅是取得自定义控件的初始高度。然后子控件高度变化的时候,根据具体的情况
让自定义控件高度重新设置为mDefaultHeight。上面的代码问题在于每次它的子控件变化的时候,onMeasure都会被调用。
mDefaultHeight也会变化。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
if (!mInitializedFlag) {
mInitializedFlag = !mInitializedFlag;
mDefaultHeight = parentHeight;
}
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
相关文章推荐
- 266 Palindrome Permutation
- EJB3-远程、本地调用
- oracle clob 存储大于4000字符的字符串
- 常用的输入检测集合(不定时补充)
- [OC]对象、指针/方法、函数
- Sublime Text 官方网站 http://www.sublimetext.com
- c++ swap 函数
- 图灵11月书讯:大约在冬季
- Educational Codeforces Round 1 D. Igor In the Museum
- 问题记录:图片资源引入时出错
- 2、orcal数据库的实例管理
- 【C++】广义表
- 编写高质量JavaScript代码的基本要点(1)
- java并发编程(一)
- 第一个jni工程
- C#_序列化
- js去除日期字符串时分秒
- 【Photon】引擎简介——百度百科
- 【SSH项目实战】国税协同平台-24.条件查询分析与实现
- jquery 中获取table里tr的属性值