2015-07-13 1 views
0

У меня есть длинный AarrayList<Image> imageList. Когда я пытаюсь перенести все изображения из этого списка в Grid, я получаю только последнее изображение.Как добавить виджеты в сетку с максимальным количеством элементов

Мой код:

final int columnCount =3; //max images in the row 
     final int rowCount = (int) Math.ceil((double) data.size()/columnCount); 

    Grid grid = new Grid(rowCount, columnCount); 

    for (int i=0; i< imageList.size(); i++) { 
     for (int row = 0; row < rowCount; row++) { 
      for (int col = 0; col < columnCount; col++) { 
       grid.setWidget(row, col, imageList.get(i)); 
      } 
     } 
    } 

Не могли бы вы помочь мне решить эту проблему

+0

Я бы сказал, что в этом случае метод _setWidget_ должны были быть вызваны только один раз или оно переопределение одного и того же изображения, что означает, что строка и столбец должны быть одинаковыми, что кажется невозможным. Вы пытались отлаживать? Мы называем setWidget один или несколько раз? – Rufi

ответ

1

это логическая ошибка в вашей для цикла. вы всегда просто перекрывая элементы с последним изображением в imageList

вы могли бы попробовать что-то вроде этого:

int row = 0; 
    int col = 0; 
    for (Image image : imageList) { 
     grid.setWidget(row, col, image); 
     col++; 
     if (col > 2) { 
      col = 0; 
      row++; 
     } 
    } 
Смежные вопросы