Bir ScrollPane öğesinin, ScrollPane küçük aracı olarak bir Tablo kullanarak buna eklenmiş çoklu parçacıklara sahip olabileceğini anlıyorum (bu, libGDX repo içindeki ScrollPane testlerinde böyle yapılır).libGDX ScrollPane widget'ı olarak Tablo yerine WidgetGroup ile ScrollPane?
Benzer bir şey elde etmek isterim ancak ScrollPane küçük aracı içinde ScrollPane küçük aracı olarak bir Tablo kullanılarak sağlanan tablo konumlandırmasının aksine birçok aktörün mutlak konumlandırılmasını isterim.
İşe yaramayan bu kodla bitti, fakat libGDX javadoc'a göre, neden çalışmıyor ve neden çalışmıyor?
stage = getStage();
// Scroll pane outer container
Container<ScrollPane> container = new Container<ScrollPane>();
container.setSize(Game.getWidth(), Game.getHeight());
// Scroll pane inner container
WidgetGroup widgetGroup = new WidgetGroup();
widgetGroup.setFillParent(true);
widgetGroup.addActor(new Image(MAP_TEXTURE_ATLAS.findRegion("map")));
// Scroll pane
ScrollPane scrollPane = new ScrollPane(widgetGroup);
container.setActor(scrollPane);
stage.addActor(container);
Hiçbir şey ekranda hiç bir şey görüntülenmiyor;
Ancak aşağıda kodu ile çalışır
// Scroll pane outer container
Container<ScrollPane> container = new Container<ScrollPane>();
container.setSize(Match3.getWidth(), Match3.getHeight());
// Scroll pane inner container
Container container2 = new Container();
container2.setBackground(new TextureRegionDrawable(MAP_TEXTURE_ATLAS.findRegion("map")));
// Scroll pane
ScrollPane scrollPane = new ScrollPane(container2);
container.setActor(scrollPane);
stage.addActor(container);
ile WidgetGroup kullanmak için bir yolu var mı (ben ScrollPane widget olarak ne istediğini açıkça olmadığı tek aktör olabilir bir Konteyner olan) ScrollPane veya gereksinim duyduğum işlevselliği nasıl elde edebileceğimin herhangi bir yolu.
Teşekkür
Kendi sınıf oluşturmak için karar kabul cevabı okuduktan sonra KABUL CEVAP
ALTERNATİF UYGULAMA, uygulama altındadır;
// Scroll pane outer container
Container<ScrollPane> container = new Container<ScrollPane>();
container.setSize(Match3.getWidth(), Match3.getHeight());
class ScrollWidget extends WidgetGroup {
private float prefHeight;
private float prefWidth;
public ScrollWidget(Image image) {
prefHeight = image.getHeight();
prefWidth = image.getWidth();
addActor(image);
}
@Override
public float getPrefHeight() {
return prefHeight;
}
@Override
public float getPrefWidth() {
return prefWidth;
}
}
ScrollWidget scrollWidget = new ScrollWidget(
new Image(MAP_TEXTURE_ATLAS.findRegion("map"))
);
// Scroll pane
ScrollPane scrollPane = new ScrollPane(scrollWidget);
scrollPane.setOverscroll(false, false);
scrollPane.layout();
scrollPane.updateVisualScroll();
scrollPane.setScrollY(scrollPane.getMaxY());
container.setActor(scrollPane);
stage.addActor(container);
sayesinde bu sorun oldu! Sorumu, nasıl çözdüğünüze benzer bir çözüm eklemem için düzenledim. – GradeRetro