Android TableRow - Как добавить View динамически в определенное положение? - PullRequest
5 голосов
/ 27 июля 2010

Я строю TableLayout динамически.И мне нужно, чтобы у TableRow был пробел в определенной позиции столбца.

Например, мне нужен ряд с ImageView на 3 и 5 позиции, следующий ряд имеет ImageView на 1, 2, 4 позиции.Я пытаюсь использовать:

   TableRow row1 = new TableRow(this);  
   row1.addView(new ImageView(this), 2);  
   row1.addView(new ImageView(this), 4);  
   mTable.addView(row1);
   TableRow row2 = new TableRow(this);  
   row2.addView(new ImageView(this), 0);  
   row2.addView(new ImageView(this), 1);  
   row2.addView(new ImageView(this), 3);
   mTable.addView(row2);

, но я получил IndexOfBoundException во время выполнения.
ОШИБКА / AndroidRuntime (771): вызвано: java.lang.IndexOutOfBoundsException: index = 2 count = 0

Любые предложения будут оценены.
Спасибо.

1 Ответ

4 голосов
/ 27 июля 2010

На самом деле, ошибка кажется довольно логичной на первый взгляд в вашем коде. Если ваша таблица не создана из xml и не является необходимым числом строк, при добавлении представления в индекс 2 этот индекс не существует. Попробуйте заменить это 2 на 0, вы увидите, что это работает. Так что вам просто нужно добавить пустой ImageView другие индексы, если вы хотите придерживаться своих.

...