Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 25

GridLayout (1 НЕ растянутый элемент)

26.09.2019, 11:48. Показов 1170. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Вопрос: в GridLayout можно задать свойства не дающие растягивать элементы?
Суть в том что у заданы свойства:
XML
1
2
3
4
5
6
7
            <androidx.gridlayout.widget.GridLayout
                android:id="@+id/gridlayout_elementgrid"
                android:layout_width="match_parent"
                android:layout_height="match_parent"                
                app:columnCount="5"
                app:rowCount="5"
            />
При добавлении элементов (идет в цикле):
Java
1
2
3
4
5
6
      GridLayout.LayoutParams lp = new GridLayout.LayoutParams();
                lp.width = 0;
                lp.height = 0;      
                lp.columnSpec = GridLayout.spec(itemColumn, 1f);
                lp.rowSpec = GridLayout.spec(itemRow, 1f);
                gridLayout.addView(view, lp);
если элементы заполняют всю таблицу то работает правильно, но если добавился только 1 элемент (не важно какие itemColumn и itemRow были), то его растягивает на всю таблицу, вместо того чтоб положить в 1 нужную ячейку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2019, 11:48
Ответы с готовыми решениями:

Максимально увеличить один элемент в Gridlayout и сжать до минимума остальные
Здравствуйте! Имеется тестовая разметка: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;android.support.v7.widget.GridLayout...

GridLayout, ширина колонки
Есть GridLayout и 5 TextView(в одной колонке, на разных строках). Как можно сделать все TextView одинаковой ширины(не указывая явно...

Объединение ячеек GridLayout
Подскажите, пожалуйста, как программно объединить две соседние ячейки в GridLayout или сделать одну ячейку длиной в 2, как на картинке,...

8
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.09.2019, 12:49
Ты в методе spec вторым параметром указываешь вес = 1, это означает, что элемент будет равномерно занимать всю доступную ширину. То есть ты сам так закодил. В такой реализации можно добавить 4 пустые ячейки, чтобы они выстроились равномерно по ширине.
0
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 25
26.09.2019, 13:26  [ТС]
про набивку пустыми думал, но как-то это некрасиво.
Есть ли способ без этого положить 1 элемент в нужную ячейку, чтобы он занял именно 1 ячейку (столбец и строка известны)

Добавлено через 5 минут
только вот, содержимое ячейки по умолчанию это картинка произвольного размера. и нужно привести ее к размеру ячейки сетки. Затем width = 0 и вес и ставил
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.09.2019, 13:39
Этот элемент и так занимает одну ячейку, она единственная в этой строке.

Нужно использовать вместо веса span.
0
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 25
26.09.2019, 14:37  [ТС]
span не помог, элемент не растягивается но на своем месте не стоит.

Как вообще в GridLayout (4 на 4), положить 1 элемент (допустим на позицию 2:2), так чтобы он не уехал, не растянулся, и не пропали столбцы.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.09.2019, 14:50
Цитата Сообщение от Tajfu Посмотреть сообщение
но на своем месте не стоит.
Он стоит на своём месте, потому что он единственный элемент в строке.

Ты создаёшь не таблицу, а какое-то кол-во ячеек, связанных между собой. Если ячейка одна в строке, как у неё может быть позиция 2?
0
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 25
26.09.2019, 15:07  [ТС]
нет связаных нет,
задача раскидать элементы по таблице (4 на 4), при этом элементы могут появиться а могут и нет.
если например я задам элементы с позициями 0:0 1:1 2:2 3:3, то они выстроятся в диагональ все логично.
но если у меня еще нет элемента 2:2 (не готов он еще). то вместо диагонали с пустой ячейкой 2:2 я получаю сдвиг элемента 3:3.

Поэтому и возникает общий вопрос:
как завести пустую таблицу 4 на 4 занимающую весь размер родителя, и положить в нее 1 элемент допустим на позицию 2:2 (или 2:3: или 3:3 - не важно, главное не на первые строки и столбцы) , что бы он занял именно это место и размер. (каждая ячейка пустая или полная должна быть по 25% от таблицы а таблица 100% от родителя)
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.09.2019, 15:59
Я же сказал, самый простой вариант - создать дополнительно пустые ячейки. Или сразу создать 16 ячеек и их изменять, когда инфа появится.
Цитата Сообщение от Tajfu Посмотреть сообщение
нет связаных нет,
Есть, у тебя стоит ширина match_parent, значит системе надо просчитать размер экрана и размеры всех ячеек в строке, чтобы их прорисовать в соответствии с весом/спаном. Каждая новая ячейка изменит размеры всех других ячеек в строке.
0
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 25
26.09.2019, 16:09  [ТС]
пробовал давать родителю
android:weightSum="4"
но никакого эффекта нет.

Может тогда проще вообще через RelativeLayout?
с позиционированием там проще но вот с размерами будет проблема.
Делить в лоб ширину и высоту не очень красиво
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2019, 16:09
Помогаю со студенческими работами здесь

Программное наполнение GridLayout
В цикле заполняю GridLayout картинками. По нажатию на картинку, GridLayout очищается и заполняется новым набором картинок. Очищаю...

Canvas поверх GridLayout
Рад всех приветствовать! Чтобы лучше понять мой вопрос, представьте себе игру крестики-нолики. Когда кто-нибудь выигрывает, выигрышный...

Не добавляются элементы в GridLayout
код @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { ...

Растянутый футер
Футер сильно растянулся понял что из-за тега content, но из-за чего именно? &lt;!DOCTYPE html&gt; &lt;html...

Растянутый фон но не статичный
У меня возник вопрос по реализации не статичного фона растянутого по сайту. Я много не знаю т.к. верстку начал осваивать не давно. вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru