Thank you.

On Sun, Mar 3, 2013 at 2:34 PM, Romain Guy <[email protected]> wrote:

> All you have to do is call measure() on the children yourself. Or you
> could just use layout params :)
> On Mar 3, 2013 12:04 PM, "Michael Dunn" <[email protected]> wrote:
>
>> Thanks Mr. Guy.  What would be the minimum required to use a value
>> instead of LayoutParams (on the entire tree)?  I don't believe this works:
>>
>> @Override
>> protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
>>   setMeasuredDimension(mWidth, mHeight);
>> }
>>
>>
>> On Sun, Mar 3, 2013 at 11:52 AM, Romain Guy <[email protected]>wrote:
>>
>>> You call measureChildren() which in turns call measureChild() which
>>> looks at the LayoutParams of each child.
>>> On Mar 1, 2013 10:12 PM, "momo" <[email protected]> wrote:
>>>
>>>>  I have a custom ViewGroup that's only ever managing the size and
>>>> position of one child.  I've override onMeasure and onLayout so that
>>>> LayoutParams are never examined, yet it fails unless I do provide
>>>> LayoutParams.  Here are abbreviated summaries of the relevant portions of
>>>> the class:
>>>>
>>>>
>>>> public class SomeSpecialLayoutManager extends ViewGroup {
>>>>
>>>>     @Override
>>>>     protected void onMeasure(int widthMeasureSpec, int
>>>> heightMeasureSpec) {
>>>>     measureChildren(widthMeasureSpec, heightMeasureSpec);
>>>>     int w = mChild.getMeasuredWidth();
>>>>     int h = mChild.getMeasuredHeight();
>>>>     w = Math.max(w, getSuggestedMinimumWidth());
>>>>     h = Math.max(h, getSuggestedMinimumHeight());
>>>>     w = resolveSize(w, widthMeasureSpec);
>>>>     h = resolveSize(h, heightMeasureSpec);
>>>>     setMeasuredDimension(w, h);
>>>>     }
>>>>
>>>>     @Override
>>>>     protected void onLayout(boolean changed, int l, int t, int r, int
>>>> b) {
>>>>     mChild.layout( 0, 0, mWidth, mHeight );
>>>>     }
>>>> }
>>>>
>>>>
>>>> Using the above, the following *does* work:
>>>>
>>>>     LayoutParams lp = mChild.getLayoutParams();
>>>>     lp.width = mWidth;
>>>>     lp.height = mHeight;
>>>>     mChild.setLayoutParams( lp );
>>>>
>>>>  But since neither `onMeasure` nor `onLayout` even makes reference to
>>>> `LayoutParams`, I wonder why it's required, or even how it's referenced at
>>>> all.  I would assume that since the layout pass grabs `mWidth` and
>>>> `mHeight` directly, there'd be no need for the `LayoutParams` at all - and
>>>> that a call to requestLayout would update it appropriately.
>>>>
>>>> However, when I isolate the above in a small program outside of a
>>>> complicated View tree with scrolling layers that exceed "normal" container
>>>> sizes, it *does* work as expected, so I have to assume the issue is in the
>>>> measure pass.
>>>>
>>>> I've read as much documentation as I can find about what's going on
>>>> during the measure and layout passes, and examined the source, but I
>>>> believe I must be missing something.
>>>>
>>>> TYIA.
>>>>
>>>> --
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Android Developers" group.
>>>> To post to this group, send email to
>>>> [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/android-developers?hl=en
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Android Developers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>  --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Android Developers" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/android-developers?hl=en
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Android Developers" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/android-developers/Wos0Zu0IdFM/unsubscribe?hl=en
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Android Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Android Developers" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/android-developers/Wos0Zu0IdFM/unsubscribe?hl=en
> .
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to