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(Batch 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()
Zero indicates no max height.
|
float |
getMaxWidth()
Zero indicates no max width.
|
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 each. |
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, then calls
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, debug, drawDebug, fire, getActions, getCaptureListeners, getColor, getDebug, getHeight, getListeners, getName, getOriginX, getOriginY, getParent, getRight, getRotation, getScaleX, getScaleY, getStage, getTop, getTouchable, getUserObject, getWidth, getX, getX, getY, getY, getZIndex, hasParent, hit, isAscendantOf, isDescendantOf, isTouchable, isVisible, localToAscendantCoordinates, localToParentCoordinates, localToStageCoordinates, moveBy, notify, parentToLocalCoordinates, remove, removeAction, removeCaptureListener, removeListener, rotateBy, scaleBy, scaleBy, screenToLocalCoordinates, setBounds, setColor, setColor, setDebug, setHeight, setName, setOrigin, setOrigin, setOriginX, setOriginY, setPosition, setPosition, setRotation, setScale, setScale, setScaleX, setScaleY, setSize, setTouchable, setUserObject, setVisible, setWidth, setX, setY, setZIndex, sizeBy, sizeBy, stageToLocalCoordinates, toBack, toFront, toString
public float getMinWidth()
getMinWidth
in interface Layout
public float getMinHeight()
getMinHeight
in interface Layout
public float getPrefWidth()
getPrefWidth
in interface Layout
public float getPrefHeight()
getPrefHeight
in interface Layout
public float getMaxWidth()
Layout
getMaxWidth
in interface Layout
public float getMaxHeight()
Layout
getMaxHeight
in interface Layout
public void setLayoutEnabled(boolean enabled)
Layout
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.setLayoutEnabled
in interface Layout
public void validate()
Layout
Layout.layout()
if Layout.invalidate()
has been 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(Batch, float)
before drawing is performed.public boolean needsLayout()
invalidated
.public void invalidate()
Layout
Layout.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 Layout
public void invalidateHierarchy()
Layout
Layout.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 it potentially
affects the parent actor's layout).invalidateHierarchy
in interface Layout
public void pack()
Layout
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 actor's size
to Layout.getPrefWidth()
and Layout.getPrefHeight()
. This allows the actor to have a size at construction time for more
convenient use with groups that do not layout their children.
public void setFillParent(boolean fillParent)
Layout
Layout.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).setFillParent
in interface Layout
public void draw(Batch batch, float parentAlpha)
validate()
should be called to ensure the widget is laid out.public void layout()
Layout
Layout.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.Copyright © 2015. All rights reserved.