Как стать автором
Обновить

Комментарии 16

А так же для подобных целей можно использовать GridLayout, доступный из support library v7.

Но, конечно, в качестве урока по созданию кастомного лэйаута, ваша статья хороша. Спасибо.
Спасибо за комментарий. Про GridLayout я в курсе, да :) Ну, во-первых, да, это скорее от экспериментаторства. Во-вторых, с GridLayout, есть проблемы. Попробуйте сделать, чтобы он вам, например, 2 кнопки растянул по горизонтали в равной пропорции, я уверен, вас ждет небольшой сюрприз :)
Хорошо рассмотрено создание кастомного контейнера. Для полноты в контрол хорошо бы добавить атрибут управляющий ошибкой округления. Т.е. чтоб была возможность заполнить все выделенное пространство без пропусков (например при ширине в 11 и количестве элементов 3).
Спасибо. Ну, тут можно много свистелок прикрутить, если задаться такой целью. Например, хорошо бы добавить проверку, не выходят ли добавляемые компоненты за границу отведенного количества колонок и все такое. А, с другой стороны, могут быть юз кейсы, когда нужно, чтобы оно немного выплывало :) Все сильно зависит, под какие конкретные цели вы пишите компонент.
Спасибо за толькове описание!
Я думаю, cellsWidth и cellsHeight лучше заменить на что-нибудь с Columns и Rows потому что упоминание ширины и высоты ячеек сбивает с толку.
Во-первых, этот guidelines для сабмита в AOSP, чего я не собираюсь делать. Мой code соответствует Java coding conventions. Но мне бы очень хотелось услышать, что именно, по-вашему, не так в моем коде? Вас смутило отсутствие префикса m?
Круто, как всегда. Спасибо :) Инетересно было бы посмотреть на вашу реализацию AdapterView как в Pinterest и ему подобных. Ну или вообще какие-то танцы вокруг AdapterView. Мне кажется, что это довольно нетривиально и будет интересно.
Спасибо. Если честно, к AdapterView у меня страх :) Особенно не представляю, как сделать аналогичное позиционирование элементов разного размера. Ведь это по-сути задача rectangular bin packing… Но как-нибудь, как появится свободное время, обязательно поиграюсь.
Да, AdapterView заставляет мои коленки трястись :D Мой колега задекомпилил Pinterest и таким образом сделал что-то подобное. Работало не очень, но было похоже :)
А вот здесь Vladimir интересно придумал — просто использует два ListView XD. Наверное, можно использовать больше, если экран становится шире =) Правда, не ясно как оно будет работать при 100+ фоток. Ну и, конечно, иногда получается рассинхрон.
Едиственное, не понял вот этого момента:

MeasureSpec.makeMeasureSpec(..., LayoutParams.MATCH_PARENT);

Почему вторым параметром идет LayoutParams.MATCH_PARENT, там же должен лежать mode?
И вот этого:
if (heightMode == MeasureSpec.EXACTLY) { ... } else if (heightMode == MeasureSpec.EXACTLY) { ...
Спасибо вам! Конечно же это ошибки. В первм случае должно быть MeasureSpec.Exactly, во втором должно было быть AT_MOST
Мда, это ошибка, кончено же там MeasureSpec.EXACTLY. Запутался немного :) Огромное спасибо!
Та пожалуйста) Бывает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации