169 похожих чатов

Всем привет, подскажите как можно в ресайклер с разметкой StaggeredGridLayoutManager

увеличить ширину элемента? Чтобы на чёрном фоне был зелёный цвет. Я меняла ширину в onCreateViewHolder и в onBindViewHolder, но, похоже, что-то где-то упустила

56 ответов

145 просмотров

Java Android?

Юлия- Автор вопроса

Я могу помочь, если вы расскажете мне более подробно, что вы хотите сделать

İsmail Alpaydın
Я могу помочь, если вы расскажете мне более подроб...

Получить точное время которое в любом месте совпадет почти идеально

Guleguli
Получить точное время которое в любом месте совпад...

Если забанили, то вот: public long getTime () Returns the Unix epoch time of this location fix, in milliseconds since the start of the Unix epoch (00:00:00 January 1, 1970 UTC). There is no guarantee that different locations have times set from the same clock. Locations derived from the LocationManager#GPS_PROVIDER are guaranteed to have their time originate from the clock in use by the satellite constellation that provided the fix. Locations derived from other providers may use any clock to set their time, though it is most common to use the device's Unix epoch time system clock (which may be incorrect). Note that the device's Unix epoch time system clock is not monotonic; it can jump forwards or backwards unpredictably and may be changed at any time by the user, so this time should not be used to order or compare locations. Prefer getElapsedRealtimeNanos() for that purpose, as the elapsed realtime clock is guaranteed to be monotonic. On the other hand, this method may be useful for presenting a human-readable time to the user, or as a heuristic for comparing location fixes across reboot or across devices. All locations generated by the LocationManager are guaranteed to have this time set, however remember that the device's system clock may have changed since the location was generated.

Leonid B.
Если забанили, то вот: public long getTime () Re...

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Guleguli
Получить точное время которое в любом месте совпад...

Да ептить тебя за голову... Получил лат лон --> получил текущее время устройства --> Профит

Юлия- Автор вопроса
İsmail Alpaydın
Я могу помочь, если вы расскажете мне более подроб...

хочу выставить ширину элементов, которые не на всю ширину экрана. Пыталась сделать это в процентном соотношении 40/60. Узкие элементы(желтый фон) получается сократить в ширине (но если они располагаются справа на экране, то уже нет ), то широкие элементы уже не выходит. Нагуглила эту статью на стаковерфлоу, применила решение, но оно не сработало

Юлия- Автор вопроса
Leonid B.
Все строки одинаковой высоты?

да, но я думаю, если получится изменить ширину, то потом не будет проблем с высотой уже

Юлия
да, но я думаю, если получится изменить ширину, то...

Если у вас всегда 3 элемента на строку, то возьмите для строки обычный ConstraintLayout из 3х элементов, и ставьте им % ширины в onBind как хотите. И вместо Staggered используйте Linear. Зачем здесь Staggered?

Желтый, зеленый, черный - это одна строка в списке?

Юлия- Автор вопроса

нет, это три разных элемента

Юлия
нет, это три разных элемента

Да хоть 100500 разных элементов. Они всегда расположены в 1 ряд одной и той же высоты?

Я предполагаю, что вы хотите, чтобы все элементы имели одинаковую ширину. android:layout_weight="1"

Юлия
черный - это фрагмент

Такой мелкий? Но зачем?

Юлия- Автор вопроса
Юлия- Автор вопроса
Leonid B.
Такой мелкий? Но зачем?

это фон фрагмента. я желтый элемент сделала уже, а зеленый шире. По факту получилось так, что желтый уже стал, а зеленый нет

Юлия
как раз наоборот, я хочу разную ширину

- Это список - Высота строк списка одинаковая - В разных строках у элементов внутри строки может быть разная ширина Так?

Юлия
да, верно

Вертикальный RecyclerView + LinearLayoutManager + в адаптере getViewType для холдеров 2 типов + ширину выставлять в холдере в onBindViewHodler

Юлия- Автор вопроса
Leonid B.
Вертикальный RecyclerView + LinearLayoutManager + ...

не могу понять почему LinearLayoutManager? И зачем getViewType, если ширину выставлять в холдере onBindViewHodler? getViewType при этом сценарии же тогда не используется

Юлия
не могу понять почему LinearLayoutManager? И зачем...

Зачем Staggered, если в список состоит из прямоугольников от левого края экрана до правого?

Юлия- Автор вопроса
Leonid B.
Зачем Staggered, если в список состоит из прямоуго...

Но ведь я тогда не смогу расположить жёлтые и красные элементы так, как нарисовано тут https://t.me/android_ru/1426423, они будут идти друг под другом

Юлия
как раз наоборот, я хочу разную ширину

А если представить, что оранжевый и зеленый находятся внутри общего прямоугольного контейнера? :)

Юлия- Автор вопроса
Leonid B.
А если представить, что оранжевый и зеленый находя...

А как я потом буду переходить внутрь элемента?

Юлия- Автор вопроса
Leonid B.
Что значит переходить внутрь?

Навигация с одного экрана на другой

Юлия
Да

Ну так прокинь внутрь адаптера интерфейс

Юлия
Навигация с одного экрана на другой

Ну нажала куда-нибудь и обработала нажатие.

Юлия
Да

И потом уже ловишь клик по айтему

Если все эти полоски некоикабельны, лучше просто взять и нарисовать их на канвасе. Либо как дровабл, либо как вьюшка, если еще клики надо обрабатывать. Это будет работать гораздо быстрее чем добавление кучи вьюшек

Юлия- Автор вопроса
^^^^^^^^^^^^^^^^^^^^^^^^ ___
И потом уже ловишь клик по айтему

Например, наполнение будут иконки - сделать 2 батон имадж в одном элементе и по его клику передавать колбэк, типа правая иконка была нажата или левая?

Юлия- Автор вопроса
Юлия- Автор вопроса
M
Если все эти полоски некоикабельны, лучше просто в...

Да и в дравбл не рисовать же весь список, который в будущем планирует быть увеличен

Юлия
Например, наполнение будут иконки - сделать 2 бато...

Ну если нужно отличать правый или левый, тогда интерфейс с двумя методами : левый и правый

Юлия
Да и в дравбл не рисовать же весь список, который ...

А как эта штука в принципе работать должна?

Обычная задача. В адаптер передаются листенеры. Эти листенеры вызываются при кликах по списку. В листенерах делаешь что хочешь.

Юлия- Автор вопроса

Подскажите, где можно просмотре примеры такой реализации или что гуглить?

Юлия- Автор вопроса
Leonid B.
Обычная задача. В адаптер передаются листенеры. Эт...

Это я делала, но необычной для меня стала реализация элементов: один на всю ширину, второй и третий с разной шириной, а затем у четвёртого и пятого местами поменять ширину

Юлия
Подскажите, где можно просмотре примеры такой реал...

Но только ты уже в адаптере точно должна понимать какой левый и какой правый)) а для этого нужно понять какой у тебя будет layout Manager...

Юлия- Автор вопроса
Юлия
Я по позиции элемента это сделала

Нууу такой... Делай через linear layout. И тут уже выбор делай как я с разными viewType или как предлагает @inthecornersc с одним, но прятать лишнее

Юлия- Автор вопроса
^^^^^^^^^^^^^^^^^^^^^^^^ ___
Нууу такой... Делай через linear layout. И тут уже...

А что подразумевается под лишним? Я правильно поняла, что в вашей реализации получится только сделать вместо двух элементов один и с кнопками? Да и как наполнять такой элемент? Во фрагменте перебирать список по позиции и если совпадает, то 2 элемента сразу в адаптер?

Юлия- Автор вопроса
Юлия
А что подразумевается под лишним? Я правильно поня...

Хотя последнее про фрагмент, это я уже что-то фигню пишу

Юлия
А что подразумевается под лишним? Я правильно поня...

Ну это делает адаптер. Допустим тебе приходит тупо список. И тебе каждый n нужно делать 2 вряд. А в адаптере ты уже все знаешь. И зависимости ситуации ты рисуешь тот или иной viewHolder

Юлия
А что подразумевается под лишним? Я правильно поня...

А у каждого viewHolder своя xml разметка. Единственная "сложность" в каждой разметке все выставить как тебе надобно

Юлия
А что подразумевается под лишним? Я правильно поня...

И + в этой реализации можно в один RV пихать любые элементы с любой сложностью разметки

Юлия- Автор вопроса

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта