0

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

当文本太大时,栏中的按钮会包裹它们的文本,但我最终会遇到这种愚蠢的情况:

在此处输入图像描述

按钮的高度不同!我希望 ButtonBar 为我提供良好规范的按钮,如下所示:

在此处输入图像描述

我可以通过将每个按钮分成三行来作弊。这会造成小按钮在空间中游动的情况:

在此处输入图像描述

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

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

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

4

1 回答 1

0

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

    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);
        }
    }

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

注释?

于 2021-11-13T03:28:59.577 回答