Class WidgetGroup
- java.lang.Object
-
- com.badlogic.gdx.scenes.scene2d.Actor
-
- com.badlogic.gdx.scenes.scene2d.Group
-
- com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup
-
- Direct Known Subclasses:
Container
,HorizontalGroup
,ScrollPane
,SplitPane
,Stack
,Table
,Tree
,VerticalGroup
public class WidgetGroup extends Group implements Layout
AGroup
that participates in layout and provides a minimum, preferred, and maximum size.The default preferred size of a widget group is 0 and this is almost always overridden by a subclass. The default minimum size returns the preferred size, so a subclass may choose to return 0 for minimum size if it wants to allow itself to be sized smaller than the preferred size. The default maximum size is 0, which means no maximum size.
See
Layout
for details on how a widget group should participate in layout. A widget group's mutator methods should callinvalidate()
orinvalidateHierarchy()
as needed. By default, invalidateHierarchy is called when child widgets are added and removed.
-
-
Constructor Summary
Constructors Constructor Description WidgetGroup()
WidgetGroup(Actor... actors)
Creates a new widget group containing the specified actors.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
childrenChanged()
Called when actors are added to or removed from the group.void
draw(Batch batch, float parentAlpha)
If this method is overridden, the super method orvalidate()
should be called to ensure the widget group is laid out.float
getMaxHeight()
Zero indicates no max height.float
getMaxWidth()
Zero indicates no max width.float
getMinHeight()
float
getMinWidth()
float
getPrefHeight()
float
getPrefWidth()
Actor
hit(float x, float y, boolean touchable)
If this method is overridden, the super method orvalidate()
should be called to ensure the widget group is laid out.void
invalidate()
Invalidates this actor's layout, causingLayout.layout()
to happen the next timeLayout.validate()
is called.void
invalidateHierarchy()
Invalidates this actor and its ascendants, callingLayout.invalidate()
on each.void
layout()
Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, callsLayout.invalidate()
on any each child whose width or height has changed, and callsLayout.validate()
on each child.boolean
needsLayout()
Returns true if the widget's layout has beeninvalidated
.void
pack()
Sizes this actor to its preferred width and height, then callsLayout.validate()
.void
setFillParent(boolean fillParent)
If true, this actor will be sized to the parent inLayout.validate()
.void
setLayoutEnabled(boolean enabled)
Enables or disables the layout for this actor and all child actors, recursively.protected void
sizeChanged()
Called when the actor's size has been changed.void
validate()
Ensures the actor has been laid out.-
Methods inherited from class com.badlogic.gdx.scenes.scene2d.Group
act, addActor, addActorAfter, addActorAt, addActorBefore, applyTransform, applyTransform, clear, clear, clearChildren, clearChildren, computeTransform, debugAll, drawChildren, drawDebug, drawDebugChildren, findActor, getChild, getChildren, getCullingArea, hasChildren, isTransform, localToDescendantCoordinates, removeActor, removeActor, removeActorAt, resetTransform, resetTransform, setCullingArea, setDebug, setStage, setTransform, swapActor, swapActor, toString
-
Methods inherited from class com.badlogic.gdx.scenes.scene2d.Actor
addAction, addCaptureListener, addListener, ancestorsVisible, ascendantsVisible, clearActions, clearListeners, clipBegin, clipBegin, clipEnd, debug, drawDebugBounds, fire, firstAscendant, getActions, getCaptureListeners, getColor, getDebug, getHeight, getListeners, getName, getOriginX, getOriginY, getParent, getRight, getRotation, getScaleX, getScaleY, getStage, getTop, getTouchable, getUserObject, getWidth, getX, getX, getY, getY, getZIndex, hasActions, hasKeyboardFocus, hasParent, hasScrollFocus, isAscendantOf, isDescendantOf, isTouchable, isTouchFocusListener, isTouchFocusTarget, isVisible, localToActorCoordinates, localToAscendantCoordinates, localToParentCoordinates, localToScreenCoordinates, localToStageCoordinates, moveBy, notify, parentToLocalCoordinates, positionChanged, remove, removeAction, removeCaptureListener, removeListener, rotateBy, rotationChanged, scaleBy, scaleBy, scaleChanged, screenToLocalCoordinates, setBounds, setColor, setColor, setDebug, setHeight, setName, setOrigin, setOrigin, setOriginX, setOriginY, setParent, setPosition, setPosition, setRotation, setScale, setScale, setScaleX, setScaleY, setSize, setTouchable, setUserObject, setVisible, setWidth, setX, setX, setY, setY, setZIndex, sizeBy, sizeBy, stageToLocalCoordinates, toBack, toFront
-
-
-
-
Constructor Detail
-
WidgetGroup
public WidgetGroup()
-
WidgetGroup
public WidgetGroup(Actor... actors)
Creates a new widget group containing the specified actors.
-
-
Method Detail
-
getMinWidth
public float getMinWidth()
- Specified by:
getMinWidth
in interfaceLayout
-
getMinHeight
public float getMinHeight()
- Specified by:
getMinHeight
in interfaceLayout
-
getPrefWidth
public float getPrefWidth()
- Specified by:
getPrefWidth
in interfaceLayout
-
getPrefHeight
public float getPrefHeight()
- Specified by:
getPrefHeight
in interfaceLayout
-
getMaxWidth
public float getMaxWidth()
Description copied from interface:Layout
Zero indicates no max width.- Specified by:
getMaxWidth
in interfaceLayout
-
getMaxHeight
public float getMaxHeight()
Description copied from interface:Layout
Zero indicates no max height.- Specified by:
getMaxHeight
in interfaceLayout
-
setLayoutEnabled
public void setLayoutEnabled(boolean enabled)
Description copied from interface:Layout
Enables or disables the layout for this actor and all child actors, recursively. When false,Layout.validate()
will not cause a layout to occur. This can be useful when an actor will be manipulated externally, such as with actions. Default is true.- Specified by:
setLayoutEnabled
in interfaceLayout
-
validate
public void validate()
Description copied from interface:Layout
Ensures the actor has been laid out. CallsLayout.layout()
ifLayout.invalidate()
has been called since the last timeLayout.validate()
was called, or if the actor otherwise needs to be laid out. This method is usually called inActor.draw(Batch, float)
by the actor itself before drawing is performed.
-
needsLayout
public boolean needsLayout()
Returns true if the widget's layout has beeninvalidated
.
-
invalidate
public void invalidate()
Description copied from interface:Layout
Invalidates this actor's layout, causingLayout.layout()
to happen the next timeLayout.validate()
is called. This method should be called when state changes in the actor that requires a layout but does not change the minimum, preferred, maximum, or actual size of the actor (meaning it does not affect the parent actor's layout).- Specified by:
invalidate
in interfaceLayout
-
invalidateHierarchy
public void invalidateHierarchy()
Description copied from interface:Layout
Invalidates this actor and its ascendants, callingLayout.invalidate()
on each. This method should be called when state changes in the actor that affects the minimum, preferred, maximum, or actual size of the actor (meaning it potentially affects the parent actor's layout).- Specified by:
invalidateHierarchy
in interfaceLayout
-
childrenChanged
protected void childrenChanged()
Description copied from class:Group
Called when actors are added to or removed from the group.- Overrides:
childrenChanged
in classGroup
-
sizeChanged
protected void sizeChanged()
Description copied from class:Actor
Called when the actor's size has been changed.- Overrides:
sizeChanged
in classActor
-
pack
public void pack()
Description copied from interface:Layout
Sizes this actor to its preferred width and height, then callsLayout.validate()
.Generally this method should not be called in an actor's constructor because it calls
Layout.layout()
, which means a subclass would have layout() called before the subclass' constructor. Instead, in constructors simply set the actor's size toLayout.getPrefWidth()
andLayout.getPrefHeight()
. This allows the actor to have a size at construction time for more convenient use with groups that do not layout their children.
-
setFillParent
public void setFillParent(boolean fillParent)
Description copied from interface:Layout
If true, this actor will be sized to the parent inLayout.validate()
. If the parent is the stage, the actor will be sized to the stage. This method is for convenience only when the widget's parent does not set the size of its children (such as the stage).- Specified by:
setFillParent
in interfaceLayout
-
layout
public void layout()
Description copied from interface:Layout
Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, callsLayout.invalidate()
on any each child whose width or height has changed, and callsLayout.validate()
on each child. This method should almost never be called directly, insteadLayout.validate()
should be used.
-
hit
public Actor hit(float x, float y, boolean touchable)
If this method is overridden, the super method orvalidate()
should be called to ensure the widget group is laid out.- Overrides:
hit
in classGroup
touchable
- If true, hit detection will respect thetouchability
.- See Also:
Touchable
-
draw
public void draw(Batch batch, float parentAlpha)
If this method is overridden, the super method orvalidate()
should be called to ensure the widget group is laid out.
-
-