If you want to extend a Class and do some stuff, before the super constructor gets called, you can do the following:
Create static methods, which return everything your super constructor needs.
Here is a simple example from LibGDX. I wanted to extend ScrollPane and provide some additional predefined values.
What I wanted to do is:
Create static methods, which return everything your super constructor needs.
Here is a simple example from LibGDX. I wanted to extend ScrollPane and provide some additional predefined values.
What I wanted to do is:
- children of my ScrollableWidget should always sit in the middle
- both scrollbars should always be active
- children should always sit in the middle of a bigger container (overscrolling)
public class ScrollableWidget extends ScrollPane {
public ScrollableWidget(
int scrollWidth, int scrollHeight,
int childWidth, int childHeight, Actor child, Skin skin) {
super(construct(childWidth, childHeight, child), skin);
setSize(scrollWidth, scrollHeight);
setScrollBarPositions(true, true);
layout();
setScrollPercentX(.5f);
setScrollPercentY(.5f);
}
private static Actor construct(
int width, int height, Actor child) {
Group container = new Group();
container.setSize(width,height);
child.setPosition(width/2-child.getWidth()/2,height/2-child.getHeight()/2, Align.bottomLeft);
container.addActor(child);
return container;
}
}
Comments
Post a Comment