CN1 выравнивает значок метки относительно базовой линии его текста - PullRequest
0 голосов
/ 30 января 2019

В приведенном ниже примере есть три Label компонента, каждый из которых имеет изображение значка.Ограничительные рамки изображений минимальны (таким образом, горизонтальная линия изображения находится у нижней границы).Я хотел бы выровнять эти изображения так, чтобы их горизонтальные линии находились на одном уровне с базовыми линиями текстов.Как мне этого добиться?

enter image description here

редактировать: при применении подхода FlowLayout BASELINE я получаю следующий результат:

enter image description here

Примечание. Я намеренно поместил изображение с правой стороны, чтобы показать, что каким-то образом используется "верхняя базовая линия" вместо фактической базовой линии.

edit:

когда я изменяю vAlign на BOTTOM, я получаю следующий результат:

enter image description here

1 Ответ

0 голосов
/ 31 января 2019

Label не поддерживает это напрямую, поскольку по центру изображение выравнивается по умолчанию, когда оно слева.Решение состоит в том, чтобы использовать две метки для каждой записи:

Label text = new Label("Text");
Label icon = new Label(image);
Container cnt = Container.encloseIn(new FlowLayout(LEFT, BASELINE), 
                              text, icon);
...