我是有这个问题: 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);
}