Flex: Datagrid, разрыв строки в случае очень длинной строки - PullRequest
1 голос
/ 29 ноября 2009

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

Вот как это выглядит: http://img.skitch.com/20091129-qt3gjneh8ksygypyjnra67auf.png

Я хочу добавить функцию для инструмента для обработки больших строк текста. Есть ли способ реализовать разрыв строки, если он очень длинный?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 29 ноября 2009

Я некоторое время не использовал flex, но я могу придумать 2 способа справиться с этим:

Вы создаете пользовательское средство визуализации или изменяете текстовое поле существующего средства визуализации, чтобы оно было многострочным = true, wordWrap и autoSize = TextFieldAutoSize.LEFT.

Вы можете попытаться уйти, установив labelFunction . Что-то вроде:

//assuming an item has a user and a message property, your might be called something else
private function chopString(item:Object):String{
   var fullMess:String = item.user + " > " + item.message;
   if(fullMess.length > 30) fullMess.substr(0,30) + "\n" + fullMess.substr(0,31);
}

Это грубый код, вы должны его протестировать и настроить, но я надеюсь, что идея читабельна. НТН

0 голосов
/ 01 декабря 2009

Просто добавьте эти два свойства в столбцы Datagrid и Datagrid.

<mx:Datagrid variableRowHeight="true" 

<mx:DataGridColumn wordWrap="true"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...