安卓果冻豆MeasureSpec错误 [英] Android Jelly Bean MeasureSpec bug

查看:176
本文介绍了安卓果冻豆MeasureSpec错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是有这个问题: SlidingMenu在安卓4.3 BUG
但现在我已经固定的,我想分享我的解决方案的原因可能有人会需要它。
我来回答这个问题我吼叫。

I was having this problem: SlidingMenu BUG in android 4.3
But now I've fixed and I want to share my solution 'cause probably someone will need it too.
I'll answer this question myself bellow.

推荐答案

所以,我是有上Build.VERSION_ codeS.JELLY_BEAN_MR2有一个问题,当我们想创建一个事实在于该问题的 MeasureSpec

So the problem I was having lies on the fact that Build.VERSION_CODES.JELLY_BEAN_MR2 has a problem when we want to create a MeasureSpec:

MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams..., MeasureSpec.EXACTLY);

使用 MeasureSpec.EXACTLY 时,我如执行 .measure(widthMeasureSpec,heightMeasureSpec); 返回值完全陌生的,所以这个问题就可以,如果我们使用解决了 MeasureSpec.AT_MOST 而不是 MeasureSpec.EXACTLY

With MeasureSpec.EXACTLY when I perform for example a .measure(widthMeasureSpec, heightMeasureSpec); it returns values completely strange, so this problem can be solved if we use MeasureSpec.AT_MOST instead of MeasureSpec.EXACTLY.


希望它可以帮助别人的未来;)
PS:我不知道,如果Android的奇巧(4.4,API 19)有这个问题了。

编辑:它


Hope it helps someone in the future ;)
ps: I don't know if Android Kitkat (4.4, API 19) has this problem too.

it does.

int widthMeasureSpec;
int heightMeasureSpec;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.MATCH_PARENT, View.MeasureSpec.AT_MOST);
    heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.WRAP_CONTENT, View.MeasureSpec.AT_MOST);
} else {
    widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.MATCH_PARENT, View.MeasureSpec.EXACTLY);
    heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.WRAP_CONTENT, View.MeasureSpec.EXACTLY);
}

这篇关于安卓果冻豆MeasureSpec错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆