This was my requirement Hence I did not go for the listField option...
Try it may be helpful..
listVFM = new VerticalFieldManager();
rowHFM = new HorizontalFieldManager[10];
imageBitmapField = new BitmapField[10];
img_bitmap = Bitmap.getBitmapResource("image.png");
descriptionLabel = new LabelField[10];
discountLabel = new LabelField[10];
goButton = new RoundedCustomButtonField[10];
goSelectBitmap = Bitmap.getBitmapResource("btnSelectGo.png");
goUnselectBitmap = Bitmap.getBitmapResource("btnUnselectGo.png");
row_height = 90;
int j=0;
int row_count = 0;
for(int i=0; i<10; i++) {
rowHFM[row_count] = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_HEIGHT) {
protected void sublayout(int maxWidth, int maxHeight) {
int displayWidth = Display.getWidth();
int displayHeight = 80;
super.sublayout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
rowHFM[row_count].setPadding(2, 2, 2, 2);
imageBitmapField[row_count] = new BitmapField(img_bitmap, BitmapField.FIELD_VCENTER | BitmapField.VCENTER | BitmapField.USE_ALL_HEIGHT) {
protected void layout(int maxWidth, int maxHeight)
{
int displayWidth = 85;
int displayHeight = 70;
super.layout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
imageBitmapField[row_count].setPadding(0,0,0,4);
descriptionLabel[row_count] = new LabelField("Description.....") {
protected void layout(int maxWidth, int maxHeight) {
int displayWidth = (int)(Display.getWidth()/2.6);
int displayHeight = maxHeight;
super.layout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
descriptionLabel[row_count].setPadding(5,0,0,2);
discountLabel[row_count] = new LabelField(discountRate + "%") {
protected void layout(int maxWidth, int maxHeight) {
int displayWidth = (int)(Display.getWidth()/4.8);
int displayHeight = maxHeight;
super.layout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
discountLabel[row_count].setPadding(5,0,0,2);
goButton[row_count] = new CustomButtonField("go",goSelectBitmap ,goUnselectBitmap, Field.FIELD_VCENTER |Field.USE_ALL_HEIGHT);
goButton[row_count].setPadding(0,0,0,2);
goButton[row_count].setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
//code....
}
});
rowHFM[row_count].add(imageBitmapField[row_count]);
rowHFM[row_count].add(descriptionLabel[row_count]);
rowHFM[row_count].add(discountLabel[row_count]);
rowHFM[row_count].add(goButton[row_count]);
listVFM.add(rowHFM[row_count]);
row_count++;
}