4

У меня была эта проблема: https://stackoverflow.com/questions/20121696/slidingmenu-bug-in-android-4-3
Но теперь я исправил и хочу поделиться своим решением, потому что, возможно, кому-то это понадобится.
Я сам отвечу на этот вопрос.Android Jelly Bean MeasureSpec ошибка

+0

я столкнулся этот вопрос слишком http://stackoverflow.com/questions/28798288/getmeasuredheight-returns-16777215-on-android-4-2-2/28803819?noredirect=1#comment45881409_28803819 –

ответ

5

Так что проблема у меня была ложь на том факте, что Build.VERSION_CODES.JELLY_BEAN_MR2 имеет проблему, когда мы хотим создать MeasureSpec:

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

С MeasureSpec.EXACTLY когда я выступаю, например, .measure(widthMeasureSpec, heightMeasureSpec); возвращает значения совершенно странно, поэтому эту проблему можно решить, если мы используем MeasureSpec.AT_MOST вместо MeasureSpec.EXACTLY.


Надеюсь, что это поможет кому-то в будущем;)
пс: Я не знаю, если Android Kitkat (4,4, API 19) имеет эту проблему тоже.

EDIT: он делает.

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); 
} 
+0

Что точка передачи WRAP_CONTENT в качестве первого параметра для nakeMeasureSpec? – pskink

+0

@pskink, ну, потому что в моем XML я объявил layout_width = "wrap_content" и layout_height = "match_parent", и я думаю (не на 100% уверен в этом), когда я создаю MeasureSpec, я должен использовать ту же настройку. – GuilhE

+0

см. ViewGroup.getChildMeasureSpec() как его сделать – pskink

Смежные вопросы