Sprite:setLayoutConstraints

From GiderosMobile
Revision as of 10:31, 16 September 2019 by MoKaLux (talk | contribs) (added the start of an example + fixed some typo)



Available since: Gideros 2018.9

Class: Sprite

Description

This function specify the child placement rules within the grid defined on its parent by Sprite:setLayoutParameters.

Gideros layout system is heavily based on Java GridBagLayout principle. See here for more explanation: https://www.math.uni-hamburg.de/doc/java/tutorial/uiswing/layout/gridbag.html

The constraint table can contain the following fields:

  • gridx: The 0-based index of the column the child must be placed into
  • gridy: The 0-based index of the row the child must be placed into
  • gridwidth: The number of column this child will take
  • gridheight: The number of row this child will take
  • weightx: The horizontal weight of the child. Used to distribute extra space among children
  • weighty: The vertical weight of the child. Used to distribute extra space among children
  • anchor: Defines where the child should be placed inside its grid space.

Can be Sprite.LAYOUT_ANCHOR_NORTHWEST, Sprite.LAYOUT_ANCHOR_NORTH, Sprite.LAYOUT_ANCHOR_NORTHEAST, Sprite.LAYOUT_ANCHOR_WEST, Sprite.LAYOUT_ANCHOR_CENTER, Sprite.LAYOUT_ANCHOR_EAST, Sprite.LAYOUT_ANCHOR_SOUTHWEST, Sprite.LAYOUT_ANCHOR_SOUTH or Sprite.LAYOUT_ANCHOR_SOUTHEAST

  • fill: In which directions the child should be expanded to fit the grid space.

Can be Sprite.LAYOUT_FILL_NONE, Sprite.LAYOUT_FILL_HORIZONTAL, Sprite.LAYOUT_FILL_VERTICAL or Sprite.LAYOUT_FILL_BOTH

  • ipadx: Internal horizontal padding
  • ipady: Internal vertical padding
  • minWidth: Minimum width
  • minHeight: Minimum height
  • prefWidth: Preferred width
  • prefHeight: Preferred height
  • insetTop: the top margin
  • insetLeft: the left margin
  • insetBottom: the bottom margin
  • insetRight: the right margin


Specifying a nil table will clear layout constraints.
When a Sprite is resized by the layout system, an Event.LAYOUT_RESIZED is triggered.


Sprite:setLayoutConstraints(constraints)

Parameters

constraints: (table) Table of layout constraints.

Examples

Example:

-- LAYOUT CONSTRAINTS @hgy29
local ticket = Bitmap.new(Texture.new("gfx/vip/ticket.png"))
local text = Bitmap.new(Texture.new("gfx/vip/text.png"))
 
-- Use auto layout on ticket to center text automatically
ticket:setLayoutParameters{ rowWeights = {1}, columnWeights = {1} }
text:setLayoutConstraints{ }

ticket:addChild(text)
stage:addChild(ticket)