Hey Han, I hope you are doing OK with this quarantine.
Your library is great.
Im having a small issue and after hours trying different things I was able to.. make a stupid 'sort-of-fix' that really doesnt fix it, so I need help!
Issue: When the leaderboardTile has more than 4 items, they glitch. Adding a scrollpane helps to fix that issue, however, when the tile is resized, the fonts resize with it causing the scrollpane to glitch depending on the X value of 'scrollpane.setMinHeight(X);
Video of issue happening: https://www.youtube.com/watch?v=jq_-hzEiFsw&feature=youtu.be
The code below was made using the tilesfx, latest version '11.38' and was based on the TilesFX Demo included in the library.
[](/*
* Copyright (c) 2017 by Gerrit Grunwald
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package eu.hansolo.tilesfx;
import eu.hansolo.tilesfx.Tile.SkinType;
import eu.hansolo.tilesfx.skins.LeaderBoardItem;
import eu.hansolo.tilesfx.tools.FlowGridPane;
import java.util.ArrayList;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
/**
* User: hansolo Date: 19.12.16 Time: 12:54
*/
public class Demo_1 extends Application {
private static final double TILE_WIDTH = 150;
private static final double TILE_HEIGHT = 150;
private LeaderBoardItem leaderBoardItem1;
private LeaderBoardItem leaderBoardItem2;
private LeaderBoardItem leaderBoardItem3;
private LeaderBoardItem leaderBoardItem4;
private LeaderBoardItem leaderBoardItem5;
private LeaderBoardItem leaderBoardItem6;
private LeaderBoardItem leaderBoardItem7;
private Tile leaderBoardTile;
private Tile leaderBoardTile1;
@Override
public void init() {
// LeaderBoard Items
leaderBoardItem1 = new LeaderBoardItem("Gerrit", 47);
leaderBoardItem2 = new LeaderBoardItem("Sandra", 43);
leaderBoardItem3 = new LeaderBoardItem("Lilli", 32);
leaderBoardItem4 = new LeaderBoardItem("Anton", 20);
leaderBoardItem5 = new LeaderBoardItem("AH", 10);
leaderBoardItem6 = new LeaderBoardItem("QW", 6);
leaderBoardItem7 = new LeaderBoardItem("GF", 0);
ArrayList<LeaderBoardItem> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(new LeaderBoardItem("A" + i, (i * Math.random())));
}
ArrayList<LeaderBoardItem> list1 = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list1.add(new LeaderBoardItem("A" + i, (i * Math.random())));
}
leaderBoardTile = TileBuilder.create()
.skinType(SkinType.LEADER_BOARD)
.prefSize(TILE_WIDTH, TILE_HEIGHT)
.title("LeaderBoard Tile")
.text("Whatever text")
.leaderBoardItems(list)
.build();
leaderBoardTile1 = TileBuilder.create()
.skinType(SkinType.LEADER_BOARD)
.prefSize(TILE_WIDTH, TILE_HEIGHT)
.title("LeaderBoard Tile")
.text("Whatever text")
.leaderBoardItems(list1)
.build();
leaderBoardTile.setMinHeight(1200);
leaderBoardTile.setPrefHeight(300);
}
@Override
public void start(Stage stage) {
ScrollPane sp = new ScrollPane(leaderBoardTile);
sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
sp.setContent(leaderBoardTile);
sp.setFitToWidth(true);
sp.setFitToHeight(true);
FlowGridPane pane = new FlowGridPane(2, 1, sp, leaderBoardTile1);
pane.setHgap(5);
pane.setVgap(5);
pane.setAlignment(Pos.CENTER);
pane.setCenterShape(true);
pane.setPadding(new Insets(5));
pane.setPrefSize(800, 600);
pane.setBackground(new Background(new BackgroundFill(Color.web("#101214"), CornerRadii.EMPTY, Insets.EMPTY)));
Scene scene = new Scene(pane);
stage.setTitle("Test");
stage.setScene(scene);
stage.show();
}
@Override
public void stop() {
System.exit(0);
}
public static void main(String[] args) {
launch(args);
}
}
)
Any ideas on how to fix this issue?
How Do I make the scrollpane adapt to the tile size?
And how do I stop the tile from increasing the font size? I tried CSS but it doesnt work.
Han, thanks for any help you can give.
bug