public class Widget extends Actor implements Layout
Actor that participates in layout and provides a minimum, preferred, and maximum size.
The default preferred size of a widget 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 if it wants to allow itself to be sized smaller. The default maximum size is 0, which means no maximum size.
See Layout for details on how a widget should participate in layout. A widget's mutator methods should call
invalidate() or invalidateHierarchy() as needed.
| Constructor and Description |
|---|
Widget() |
| Modifier and Type | Method and Description |
|---|---|
void |
draw(SpriteBatch batch,
float parentAlpha)
If this method is overridden, the super method or
validate() should be called to ensure the widget is laid out. |
float |
getMaxHeight() |
float |
getMaxWidth() |
float |
getMinHeight() |
float |
getMinWidth() |
float |
getPrefHeight() |
float |
getPrefWidth() |
void |
invalidate()
Invalidates this actor's layout, causing
Layout.layout() to happen the next time Layout.validate() is called. |
void |
invalidateHierarchy()
Invalidates this actor and all its parents, calling
Layout.invalidate() on all involved actors. |
void |
layout()
Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child,
calls
Layout.invalidate() any each child whose width or height has changed, and calls Layout.validate() on each child. |
boolean |
needsLayout()
Returns true if the widget's layout has been
invalidated. |
void |
pack()
Sizes this actor to its preferred width and height and, if this changed the size, causes the actor to be laid out by calling
Layout.invalidate() then Layout.validate(). |
void |
setFillParent(boolean fillParent)
If true, this actor will be sized to the parent in
Layout.validate(). |
void |
setLayoutEnabled(boolean enabled)
Enables or disables the layout for this actor and all child actors, recursively.
|
void |
validate()
Ensures the actor has been laid out.
|
act, addAction, addCaptureListener, addListener, clear, clearActions, clearListeners, clipBegin, clipBegin, clipEnd, fire, getActions, getCaptureListeners, getColor, getHeight, getListeners, getName, getOriginX, getOriginY, getParent, getRight, getRotation, getScaleX, getScaleY, getStage, getTop, getTouchable, getWidth, getX, getY, getZIndex, hasParent, hit, isAscendantOf, isDescendantOf, isVisible, localToAscendantCoordinates, localToParentCoordinates, localToStageCoordinates, notify, parentToLocalCoordinates, remove, removeAction, removeCaptureListener, removeListener, rotate, scale, scale, screenToLocalCoordinates, setBounds, setColor, setColor, setHeight, setName, setOrigin, setOriginX, setOriginY, setParent, setPosition, setRotation, setScale, setScale, setScaleX, setScaleY, setSize, setStage, setTouchable, setVisible, setWidth, setX, setY, setZIndex, size, size, stageToLocalCoordinates, toBack, toFront, toString, translatepublic float getMinWidth()
getMinWidth in interface Layoutpublic float getMinHeight()
getMinHeight in interface Layoutpublic float getPrefWidth()
getPrefWidth in interface Layoutpublic float getPrefHeight()
getPrefHeight in interface Layoutpublic float getMaxWidth()
getMaxWidth in interface Layoutpublic float getMaxHeight()
getMaxHeight in interface Layoutpublic void setLayoutEnabled(boolean enabled)
LayoutLayout.validate() will not
cause a layout to occur. This is useful when an actor will be manipulated externally, such as with actions. Default is true.setLayoutEnabled in interface Layoutpublic void validate()
LayoutLayout.layout() if Layout.invalidate() has called since the last time
Layout.validate() was called, or if the actor otherwise needs to be laid out. This method is usually called in
Actor.draw(SpriteBatch, float) before drawing is performed.public boolean needsLayout()
invalidated.public void invalidate()
LayoutLayout.layout() to happen the next time Layout.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).invalidate in interface Layoutpublic void invalidateHierarchy()
LayoutLayout.invalidate() on all involved actors. 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
it potentially affects the parent actor's layout).invalidateHierarchy in interface Layoutpublic void pack()
LayoutLayout.invalidate() then Layout.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 actors width
and height to Layout.getPrefWidth() and Layout.getPrefHeight(). This allows the actor to have a size at construction
time for more convenient use outside of a Table.
public void setFillParent(boolean fillParent)
LayoutLayout.validate(). If the parent is the stage, the actor will be sized
to the stage.setFillParent in interface Layoutpublic void draw(SpriteBatch batch, float parentAlpha)
validate() should be called to ensure the widget is laid out.public void layout()
LayoutLayout.invalidate() any each child whose width or height has changed, and calls Layout.validate() on each child.
This method should almost never be called directly, instead Layout.validate() should be used.