我遇到了这个问题:https://stackoverflow.com/questions/20121696/slidingmenu-bug-in-android-4-3 https://stackoverflow.com/questions/20121696/slidingmenu-bug-in-android-4-3
但现在我已经修复了,我想分享我的解决方案,因为可能有人也需要它。
下面我就亲自回答一下这个问题。
所以我遇到的问题在于,当我们想要创建一个时,Build.VERSION_CODES.JELLY_BEAN_MR2 有问题MeasureSpec
:
MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams..., MeasureSpec.EXACTLY);
With MeasureSpec.EXACTLY
当我执行例如.measure(widthMeasureSpec, heightMeasureSpec);
它返回的值完全奇怪,所以如果我们使用这个问题就可以解决MeasureSpec.AT_MOST
代替MeasureSpec.EXACTLY
.
希望它对将来的人有所帮助;)
ps:不知道Android Kitkat(4.4,API 19)是否也有这个问题。
编辑:确实如此。
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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)