ButtonBar:相同的按钮高度

ButtonBar: Same Button Height

我有一个应用程序,它有一个非常动态的按钮栏,大约有 1 到 12 个左右的按钮可以根据当前屏幕 and/or 选定的记录更改文本和功能。我正在使用 ButtonBar 来显示它们。

当文本太大时,栏中的按钮会自动换行,但我最终遇到了这种愚蠢的情况:

按钮的高度不同!我希望 ButtonBar 给我调整良好的按钮,如下所示:

我可以通过将每个按钮分成三行来作弊。这会造成小按钮在 space:

中游动的情况

(如果我使用两行,我会减少浪费space,这很好,但是单行文本不再居中,这看起来也很糟糕。)

现在,我唯一能想到的就是,在栏呈现后,扫描所有按钮以找到最高的按钮,然后相应地调整每个其他按钮。 ButtonBar 与宽度有关,这很好(但实际上可能不如所有按钮的高度相同)。具有误导性的名称“UniformButtonSize”就是这样做的。

我想知道我是否可以用 CSS 以某种方式做到这一点,也许可以将按钮高度设置为百分比。如有任何建议,我们将不胜感激!

这有点俗气,但似乎可以解决问题:

    public void adjustButtons() {
        var tallest = 0.0;
        for (Node n : buttonBar.getButtons()) {
            var ht = ((Button) n).getHeight();
            if (tallest < ht) tallest = ht;
        }
        for (Node n : buttonBar.getButtons()) {
            ((Button) n).setMinHeight(tallest);
        }
    }

因此,每当按钮栏中的按钮发生变化时,您触发它,它会找到最高的按钮,然后将所有按钮设置为该高度。

评论?