Как вы центрируете содержимое по горизонтали в гибкой таблице скриптов Google Apps?

Я создаю свое самое первое веб-приложение Google Scripts.

Я использую FlexTable в скрипте Google Apps для отображения своего контента.

Я с удовольствием использовал следующее, чтобы установить различные стили CSS для моего содержимого в ячейках:

FlexTable.setStyleAttributes(row,col,{attribute: "value"});

Однако, похоже, он вообще не отвечает ни на marginLeft, ни на marginRight. Как центрировать содержимое ячейки FlexTable?

Спасибо за внимание.


person irthinker    schedule 30.01.2014    source источник


Ответы (2)


Хорошо, у меня есть ответ. Я удачно выравнивал текст в ячейке. Однако показалось, что это не так, потому что CaptionPanel выравнивала по левому краю мою FlexTable.

Примечание. Я понял это, назначив ячейке FlexTable высококонтрастный цвет фона.

Мое решение (возможно, просто обходной путь) состояло в том, чтобы использовать setWidth, чтобы ячейка FlexTable заполнила ширину CaptionPanel.

Спасибо, Сэм, за беседу. Ваш отзыв помог мне разобраться в проблеме, укрепив уверенность в том, что то, что я делал с FlexTable, было правильным.

person irthinker    schedule 04.02.2014

Код ниже работает для текста в ячейках flextable.

//center for row
flexTable.setRowStyleAttribute(0, 'textAlign', 'center');

//for cell
flexTable.setText(0, 0, "Some Text").setStyleAttribute(0, 0, 'textAlign', 'center');  
person Sam Scholefield    schedule 30.01.2014
comment
Сэм, спасибо за ответ. Не должно быть никакой разницы, устанавливаю ли я его один или в группе, но я пошел дальше и заменил свой код на ваш, и он все равно не центрируется. Я ожидаю, что это сработает, но это не так. Я смотрю на это как в Chrome, так и в Firefox. Самое смешное, что это самая простая таблица, которую я создаю в этом приложении. У него всего одна ячейка. :-( Еще раз спасибо за попытку помочь мне. - person irthinker; 31.01.2014
comment
Я передаю ему числовое значение из массива, т. е. flexTable.setText(0, 0, sheet[1][0]).setStyleAttribute(0, 0, 'textAlign', 'center'); и значение в листе[1][0] является числом, а не строкой. Я бы предположил, что это не проблема, но может ли это быть проблемой? Извините, я не знаю, как заставить этот комментарий отображать мой код как код... - person irthinker; 31.01.2014
comment
Преобразуйте число в строку, и вы должны быть золотыми: var numAsString = sheet[1][0].toString(); flexTable.setText(0, 0, numAsString).setStyleAttribute(0, 0, 'textAlign', 'center'); - person Sam Scholefield; 01.02.2014
comment
Сэм, я пробовал это, даже используя твой точный код, но он все равно не центрировался... :-( - person irthinker; 04.02.2014
comment
Не уверен, что ваша проблема может быть в этом случае. Не видя остальной части вашего кода, было бы очень трудно дать какие-либо дополнительные советы. Единственное, что я могу предложить, это добавить ваш flexTable на какую-то панель перед добавлением его в UiApp, если вы еще этого не сделали. - person Sam Scholefield; 04.02.2014
comment
Сэм, я переключил цвет фона для таблицы, и оказалось, что проблема может заключаться в том, что CaptionPanel не центрирует FlexTable. По сути, текст выравнивается по центру, но это одна ячейка, и когда я вызываю ее в CaptionPanel, она выравнивается по левому краю панели. - person irthinker; 05.02.2014