GridLayout (не GridView) - промежутки между ячейками - программирование
Подтвердить что ты не робот

GridLayout (не GridView) - промежутки между ячейками

Я использую GridLayout (поддержка) для отображения ImageView в своем приложении. Есть 3 столбца и 5 строк. Проблема в том, что ячейки в GridLayout автоматически получают некоторое пространство между ними. Я не устанавливаю никаких дополнений или полей для ячеек. См. Изображение ниже. Все ячейки добавляются динамически, и вот как я добавляю эти ячейки.

Получение ширины и высоты экрана:

Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
screenWidth = size.x;
screenHeight = size.y;
rowHeight = (int) (screenHeight * 0.2);

Добавление представления в GridLayout:

    GridLayout.LayoutParams params = new GridLayout.LayoutParams(
            getSpec(rowColumn[0]), getSpec(rowColumn[1]));

    params.height = rowHeight;

    if (rowColumn[1].equalsIgnoreCase("col_full")) {
        params.width = (int) (screenWidth);
    } else if (rowColumn[1].equalsIgnoreCase("col_two_part")) {
        params.width = (int) (screenWidth * 0.6);
    } else {
        params.width = (int) (screenWidth * 0.3);
    }

    ImageButton image = (ImageButton) imageHashMap
            .get(reOrderedButtonsListCopy.get(i));
    image.setLayoutParams(params);

    gridLayout.addView(image, params);

XML-макет:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx"
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <android.support.v7.widget.GridLayout
            xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx"
            android:id="@+id/gridlayout_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            app:columnCount="3"
            app:rowCount="5" >
        </android.support.v7.widget.GridLayout>

    </LinearLayout>

</ScrollView>

Текущий результат:

enter image description here

Красные линии показывают пробелы между ячейками. Кроме того, в левой части GridLayout есть некоторое пространство. Я дал только 2dp как layout_margin. Любые причины, по которым происходит это дополнение?

[EDIT]

При внесении следующих изменений были удалены интервалы.

gridLayout = (GridLayout) findViewById(R.id.gridlayout_main);
gridLayout.setUseDefaultMargins(false);
gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS);
gridLayout.setRowOrderPreserved(false);

См. изображение ниже.

enter image description here

4b9b3361

Ответ 1

Найден решение.

При внесении следующих изменений были удалены интервалы.

gridLayout = (GridLayout) findViewById(R.id.gridlayout_main);
gridLayout.setUseDefaultMargins(false);
gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS);
gridLayout.setRowOrderPreserved(false);

См. изображение ниже.

enter image description here