CheckBox with includeInLayout="false"

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

CheckBox with includeInLayout="false"

kamcknig
It appears that the spark CheckBox might have a defect and I would like to
confirm if anyone has seen it. I didn't see it in the issues tracker. If
you have a CheckBox with includeInLayout set to false, then when you set
the label property, the display list does not update and show the text.
I've tried multiple ways of invalidating the display to get it to update.
I'm not sure if this is a bug, or if it's a quirk of the framework or if
I'm missing something. The following code as the main application file will
illustrate the issue. I ran into it using 4.15 SDK but it also happens in
the latest 4.16.1

Anyone else run into this or know the cause?

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication creationComplete="handleCreationComplete()"
                       xmlns:base="*"
                       xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark">

  <fx:Script>
    <![CDATA[
      import spark.components.Label;

      public function handleCreationComplete():void
      {
        blah.label = "test";
      }
    ]]>
  </fx:Script>

  <s:Group>
    <s:CheckBox id="blah" includeInLayout="false" />
  </s:Group>
</s:WindowedApplication>


Kyle McKnight
Senior UI Engineer - Accesso
321.347.7318 (M)
Reply | Threaded
Open this post in threaded view
|

Re: CheckBox with includeInLayout="false"

Erik J. Thomas
That's correct behavior. When IncludeInLayout is false, the control doesn't exist in the displayList and you are NOT going to see any changes you make to it's state until you make includeInLayout = true.

You only want to use includeInLayout when you don't want the control in your layout.

Also, one normally uses visible="false" in conjunction with includeInLayout="false" so it doesn't take up empty space in your layout. There are times you want to hide it without removing it from your layout, in which cause use visible property only. When not visible, changes to properties will take effect, and you will see them when you make the control visible again.

But I think you misunderstand the point of the property includeInLayout. If false you can't do squat with that control. Set it to true and you'll see your assignment no problem.

Cheers. :-)
 
Erik

On Feb 20, 2018, at 2:35 PM, Kyle McKnight <[hidden email]> wrote:

It appears that the spark CheckBox might have a defect and I would like to
confirm if anyone has seen it. I didn't see it in the issues tracker. If
you have a CheckBox with includeInLayout set to false, then when you set
the label property, the display list does not update and show the text.
I've tried multiple ways of invalidating the display to get it to update.
I'm not sure if this is a bug, or if it's a quirk of the framework or if
I'm missing something. The following code as the main application file will
illustrate the issue. I ran into it using 4.15 SDK but it also happens in
the latest 4.16.1

Anyone else run into this or know the cause?

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication creationComplete="handleCreationComplete()"
                      xmlns:base="*"
                      xmlns:fx="http://ns.adobe.com/mxml/2009"
                      xmlns:s="library://ns.adobe.com/flex/spark">

 <fx:Script>
   <![CDATA[
     import spark.components.Label;

     public function handleCreationComplete():void
     {
       blah.label = "test";
     }
   ]]>
 </fx:Script>

 <s:Group>
   <s:CheckBox id="blah" includeInLayout="false" />
 </s:Group>
</s:WindowedApplication>


Kyle McKnight
Senior UI Engineer - Accesso
321.347.7318 (M)

Reply | Threaded
Open this post in threaded view
|

Re: CheckBox with includeInLayout="false"

kamcknig
I assumed from what I read that it was simply removed from the calculations
for measurements and layout of its parents I didn't realize its children
wouldn't be laid out with in it.

Thanks!

On Feb 20, 2018 6:56 PM, "Erik J. Thomas" <[hidden email]> wrote:

> That's correct behavior. When IncludeInLayout is false, the control
> doesn't exist in the displayList and you are NOT going to see any changes
> you make to it's state until you make includeInLayout = true.
>
> You only want to use includeInLayout when you don't want the control in
> your layout.
>
> Also, one normally uses visible="false" in conjunction with
> includeInLayout="false" so it doesn't take up empty space in your layout.
> There are times you want to hide it without removing it from your layout,
> in which cause use visible property only. When not visible, changes to
> properties will take effect, and you will see them when you make the
> control visible again.
>
> But I think you misunderstand the point of the property includeInLayout.
> If false you can't do squat with that control. Set it to true and you'll
> see your assignment no problem.
>
> Cheers. :-)
>
> Erik
>
> On Feb 20, 2018, at 2:35 PM, Kyle McKnight <[hidden email]> wrote:
>
> It appears that the spark CheckBox might have a defect and I would like to
> confirm if anyone has seen it. I didn't see it in the issues tracker. If
> you have a CheckBox with includeInLayout set to false, then when you set
> the label property, the display list does not update and show the text.
> I've tried multiple ways of invalidating the display to get it to update.
> I'm not sure if this is a bug, or if it's a quirk of the framework or if
> I'm missing something. The following code as the main application file will
> illustrate the issue. I ran into it using 4.15 SDK but it also happens in
> the latest 4.16.1
>
> Anyone else run into this or know the cause?
>
> <?xml version="1.0" encoding="utf-8"?>
> <s:WindowedApplication creationComplete="handleCreationComplete()"
>                       xmlns:base="*"
>                       xmlns:fx="http://ns.adobe.com/mxml/2009"
>                       xmlns:s="library://ns.adobe.com/flex/spark">
>
>  <fx:Script>
>    <![CDATA[
>      import spark.components.Label;
>
>      public function handleCreationComplete():void
>      {
>        blah.label = "test";
>      }
>    ]]>
>  </fx:Script>
>
>  <s:Group>
>    <s:CheckBox id="blah" includeInLayout="false" />
>  </s:Group>
> </s:WindowedApplication>
>
>
> Kyle McKnight
> Senior UI Engineer - Accesso
> 321.347.7318 (M)
>
>