Вы определили свой GridLayout
, чтобы иметь 3 строки и 3 столбца. Затем вы предоставляете RelativeLayout
, содержащий GridView
в качестве первой ячейки (позиция 0/0). Затем вы предоставляете Button
для «Галереи», которая будет занимать позицию 0/1. Затем вы предоставляете Button
для «Фото», которое будет занимать позицию 0/2. Ваша кнопка «Сохранить» теперь будет занимать ячейку в строке 1, столбце 0. Это не то, что вам нужно.
Почему у вас есть RelativeLayout
, содержащий GridView
внутри GridLayout
? Кажется, что вам нужно только GridLayout
, чтобы равномерно расположить кнопки внизу.
В качестве альтернативы можно указать, что RelativeLayout
должен занимать 3 столбца в пределах GridLayout
, что будет располагать 3 кнопки в 3 ячейках указателя строки 1. Это можно сделать, указав RelativeLayout
a ColumnSpec
с columnSpan=3
. Это говорит GridLayout
, что RelativeLayout
хочет иметь 3 ячейки (ie: вся ширина строки).