Коллеги-программисты. Занесла меня нелёгкая на Андроид (пишем клиента для IPTV) и столкнулся я с задачей, суть которой ждёт вас в первом же комментарии.

Заранее благодарю за любые идеи.

 

19 Responses to Коллеги-программисты.

  1. Ihsode:

    Нужно мне склепать таблицу для EPG (что-то вроде этого), а это 120 каналов по вертикали и до 100 программ на каждый по вертикали.

    Вроде бы напрашивается элементарное решение:

    android на http://gsm2015.ru

    положить ScrollView, чтоб прокручивать всё по вертикали, в него горизонтальный LinearLayout для списка каналов (вертикальный LinearLayout с Button-ами) и списка программ (HorizontalScrollView). В список програм насыпаем горизонтальных LinearLayout-ов, каждый из которых забивается Button-ами конкретных теблогередач. Всё просто и понятно.

    Но страшно подумать, сколько это сожрёт памяти.

    Потому я убрал вертикальную прокрутку списка теблогередач, оставил в ней только 9 штук HorizontalScrollView, который хочу заполнять кнопками по событию остановки прокрутки списка телеканалов:

    android на http://gsm2015.ru  #1750148, 2.9 KB

    Но что-то подсказывает мне, что и 900 Buttuon-ов — это шибко дохуя и выйдет боком.

    На STB, где прокрутка происходит постранично, так как кнопками пульта плавно крутить не получится, эта проблема не стоит, потому как прорисовывается только один экран. А тут — поди ж ты, привыкли, буржуи, что поделаешь.

    Собственно вопрос: может есть что-то более вменяемое, с учётом того, что это не просто картинка с прокруткой, а мне надо знать, на какую из теблогередач ткнул пальцем пользователем, чтоб потом на неё перемотать.

  2. Ihsode:

    «9 штук HorizontalScrollView» = «HorizontalScrollView с 9 штуками LinearLayout»

  3. Ihsode:

    Есть, конечно, ещё одно решение… Canvas. Но мне реально страшно туда лезть.

  4. Gradus77:

    Для таких вещей есть ListView и BaseAdapter. Там средствами андроида все это дело кешируется и оптимизируется как надо.

  5. Ihsode:

    То есть реально создать горизонтальный ListView (программы одного канала) и запихнуть его ввертикальный?

  6. Xualoy:

    Мне тебя жаль…

    По-хорошему, надо пересмотреть весь подход.

  7. Gradus77:

    у тебя (наверное) должен быть двумерный массив с данными каналов, а ListView и Adapter — это отбражение, там можно как угодно кастомизировать элемент. Нужно делать с вложенными листами и соответствующими адаптерами. На мой взгляд это единственное решение, все остальное — адъ.

  8. Ihsode:

    Подход — в смысле сам вид теблогограммы? Нифига, так в ТЗ. Если имеется в виду с точки зрения путея решения — да всё равно, всё что угодно, только бы работало и не жрало память, она мне на видеоплеере нужнее.

  9. Ihsode:

    Да там во всех случаях — адъ и Израиль. Я тут горизонтальный … нашёл, посмотрю, смогу ли я управлять шириной его элементов.

  10. Ni0en:

    как вариант, можно сделать так:
    слева фрагмент с ListView
    Справа фрагмент с N TwoWayView с гитхаба (не используй HorizontalScrollView, он сожрет память), где N — количество видимых ячеек ListView.
    либо вместо TwoWayView использовать модифицированный ViewPager: http://stackoverflow.com/questions/12239

    Но есть проблема с ListView — как его «доскроллировать» так, чтоб не было ситуации, когда видна половинка ячейки.
    По окончанию скролла ListView заполнять горизонтальные вьюхи.
    Как-то так.

  11. Kirnes:

    ScrollView в жопу. Лепи кастомный адаптер для листа + вью холдер. Там андроед все сам сделает за тебя. Если все же тяжело будет, сделай пэйджинг каналов по буквам или группам букв и не ебись.

  12. Ihsode:

    Вот это как раз не проблема, дойду до компа и выложу, как я это осуществил. Он у меня только на высоту кнопки скролит. Не так плавно выглядит, но тоже ничего.

  13. RepEkb:

    Ох ебанная лень, как же мне себя заставить дальше разбираться в ондроеде. А то дальше лайотов так и не полез.

  14. Nivre:

    android на http://gsm2015.ru

    напомнило

  15. Ihsode:

    Кстати да, мы решили просто послать этот функционал нахуй.

  16. Xualoy:

    это правильное решение!

  17. Salapp.jr:

    Можно пойти по сложному пути и реализовать это как кастомный вью.
    Примерно как здесь: https://play.google.com/store/apps/detai… (к ней есть исходники https://code.google.com/p/diskusage/, так что можно глянуть как работает).

  18. Gradus77:

    всегда так делаю если что-то не получается.

Добавить комментарий