Получить строку списка элементов для переноса вместо отображения многоточия
Я использовал код ниже, чтобы получить макет, который форматирует изображение, заголовок и текстовую область в элементе списка.
Мне бы хотелось, чтобы это выглядело как макет приложений Twitter - с точки зрения того, как он заполняет твит, чего мне не хватает?
Детали платформы: BB OS 5.0+
Код:
protected void sublayout(int width, int height) {
try {
deleteAll();
} catch (Exception ex) {
}
MyTitleField lblTitle = new MyTitleField(info.title);//extends LabelField
LabelField lblDesc = new LabelField(info.description , LabelField.ELLIPSIS)
{
protected void layout(int width, int height) {
// TODO Auto-generated method stub
super.layout(width, height);
}
};
BitmapField bmfIcon = new BitmapField(info.icon);
add(lblTitle);
add(lblDesc);
add(bmfIcon);
int iconHeight = bmfIcon.getBitmapHeight();
int fontHeight = Font.getDefault().getHeight();
int preferredWidth = width;//getPreferredWidth();
int startY = (rowHeight - iconHeight)/2;
layoutChild(bmfIcon, bmfIcon.getBitmapWidth(), bmfIcon.getBitmapHeight());
setPositionChild(bmfIcon, 5, startY);
int textWidth = preferredWidth - (bmfIcon.getBitmapWidth() +10 );
int textStartX = bmfIcon.getBitmapWidth() + 10;
layoutChild(lblTitle, textWidth ,
fontHeight + 1);
setPositionChild(lblTitle, textStartX, startY);
int descHeight = rowHeight - (startY+fontHeight+2);
layoutChild(lblDesc, textWidth , descHeight);
setPositionChild(lblDesc, textStartX, (startY+fontHeight+2));
setExtent(preferredWidth, getPreferredHeight());
}
1 ответ
- Во-первых, вам нужно избавиться от стиля ELLIPSIS, как предложил icchanobot.
- Затем вам нужно добавить поле метки внутри
VerticalFieldManager
(HorizontalFieldManager
будет работать тоже), как предлагается в этом ответе.
Следующий фрагмент кода
String longString = "This is a LabelField inside a VerticalFieldManager. Here is a link to your question https://stackru.com/questions/7641753/get-list-item-row-to-wrap-instead-of-show-ellipsis";
VerticalFieldManager vfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH | Manager.NO_HORIZONTAL_SCROLL);
vfm.add(new LabelField(longString));
add(vfm);
производит