Тилипоны все быстрые, конечно. Но я (по старинке) все ресурсы получаю при запуске, и потом уже использую готовые объекты. Не люблю я доверять жаве сосздание-удаление-создание ... и потом сборку мусора... но это скорее занудство мое.
Тилипоны все быстрые, конечно. Но я (по старинке) все ресурсы получаю при запуске, и потом уже использую готовые объекты. Не люблю я доверять жаве сосздание-удаление-создание ... и потом сборку мусора... но это скорее занудство мое.
Т.е. есть у тебя в Navigation Drawer меню, которое выезжает слева. Пока оно одноуровневое - NavigationView прекрасно выделяет щёлкнутый элемент списка. Захотел ты, как я - добавить подгруппу (ну очевидно же, чтобы было наглядно видно) - и ппц, это меню уже не работает как единое, т.е. пункты подгруппы при клике на них - не выделяются.
С одной стороны - всё верно идеологически: есть вложенное <menu> - хай оно само там чего-то рулит. С другой стороны, в практическом применении подгруппа - тупо для заголовка, и всё. Понимаешь, какая, млять, диалектика бытия?
Ну и переписал часть на загрузку при старте, как ты и просил:
// забиваем биндинг пунктов меню на связанные с ними глобальные Action
menuItemToAction.put(R.id.nav_status, R.id.action_global_nav_status);
menuItemToAction.put(R.id.nav_sensors, R.id.action_global_nav_sensors);
menuItemToAction.put(R.id.nav_devices, R.id.action_global_nav_devices);
menuItemToAction.put(R.id.nav_settings, R.id.action_global_nav_settings);
З.Ы. И это я тебе ещё не рассказывал, какие геморрои с backstack, если вызывать NavController.navigate - эта хрень добавляет вызов в backstaсk, тут вроде всё норм. Штатное поведение NavigationView - нихрена не добавляет переход в backstack - тут тоже всё норм.
А засада в том, что ViewPager, если происходит добавление переходов в backstack (ну шом потом по кнопке "назад" телепонькаться, ну ты понял) - начинает работать неправильно, потому как внутри себя хранит созданные view, и при переходе по "назад" - эти view не пересоздаёт, вообще НИКАКИХ событий им не посылает. Чуешь прикол, да?
Лечится это дело так:
pager = (ViewPager) root.findViewById(R.id.pager_sensors);
// ВОТ ЭТОТ МЕТОД ПОЗВОЛЯЕТ НОРМАЛЬНО ОБХОДИТЬСЯ С BACKSTACK, ТОГДА ViewPager не сохраняет у себя ссылки на View, и пересоздаёт их !!!
pager.setSaveFromParentEnabled(false);
Фухх. Бобёр выдохнул. Шо я имею сказать? В том зоопарке - дискотека с саблями: не туда пойдёшь - прирежут :) Но я не сдаюсь.
Согласись - Андроид - прикольная платформа? Затягивает. Очень много возможностей и путей решения. Ну и глюков тоже много.
Вроде всё ну очччччень легко, и вдруг поведение не такое, как ожидаешь! ;)))) Но писать приятно и инструмент - сама Студия!!!! Шоп я так жил! По мне - так супер удобно.
Согласись - Андроид - прикольная платформа? Затягивает. Очень много возможностей и путей решения. Ну и глюков тоже много.
Вроде всё ну очччччень легко, и вдруг поведение не такое, как ожидаешь! ;)))) Но писать приятно и инструмент - сама Студия!!!! Шоп я так жил! По мне - так супер удобно.
Ну да, затягивает, не спорю. И про глюки - тоже не спорю :) Чего только стоит архитектурный про@б в виде зоопарка с getFragmentManager(), getSupportFragmentManager(), getChildFragmentManager() - это просто песня! Такое ощущение, что всё это дело допиливается наживую, по ходу :(
Ну и event propagation (bubbling) - сильно не хватает. Да и вообще, взаимодействие по цепочкам сверху-вниз - из рук вон плохо, костылями типа Bundle и пр.
Зато анимации красивые :)
З.Ы. Я злой сегодня, потому что из-за сраного ViewPager и использования getFragmentManager вместо getChildFragmentManager - текла память, ужасно. Пока разобрался - готов был монитор разбить.
Ты не психуй, а пойми - я не зря написал про множество решений. Видишь - кусок АПИ глючный - реши ту же задачу другим образом. Мне фрагменты сразу не понравились я своего мелкого ризалта добился, но на твои грабли не наступал. И больше не пользуюсь.
Фрагменты изначально нужны были для универсальности между планшетом и тилипоном. Вот тебе это зачем? Скилл ты себе на этой ебле отрастил - позавидовать... и чо?
Надеюсь - ты меня понимаешь? Не обижайся только!
----------------------
как Фортран - настоящему программисту (если не помнишь - тебе Женя пояснит ;) ), так для тилипона есть текст вью, имидж вью, лист вью. И линеар лейаут... ну может еще рилейтив. Вот честно - вообще больше ничего не надо. Для любителей извращений - навигейшн бары сверху, снизу.... ты вот на выдвижном уже наебался - потому как нехер извращениями пользоваться ;))))
------------------------
Ладно! Не бери в голову! Я ухрючился немного... меня пятёрка нагрела на бутылку Бакарди - там просто водка оказалась... я и расстроился! И главное понимаю, что доказать ничего не смогу... но очень хочется им эту бутылку забить!
Поменяешь что-то в одном месте - ломается в другом. Не андроид, а минное поле :)))
Дак потомушто это линупс ;)
Я вон давеча решил перещупать импортозамещённый Альт-линукс. Допилено знатно, конечно. В AD и Windows network практически с полпинка залетает. Но, б-ть, вход под доменным пользователем в систему - это просто треш. Неаккуратно ESC жмакнул - и тебе ни поля ввода в модальном окне, нихера...
Пока с эмулятора только и работаю. Сейчас коннекчусь уже к железянному контроллеру, по IP в локальной сети. Сам контроллер через Wi-Fi-свисток всё это дело разруливает. Ещё раз убеждаюсь, что единый текстовый протокол - весчь: неважно, откуда поступила команда - через UART, по Wi-Fi, через внешний сервис gardenboss.ru - оно это дело разберёт и выплюнет ответ.
Вот, приделал первую версию голосового управления (эмуль тормозит при захвате видео): https://youtu.be/A_huwPzCbPE Потихоньку буду расширять этот функционал, чтобы уручную, значится, не тыкать много конопочек.
Короче, дела движутся ;) Интерфейс устаканим, с NavigationView я потихоньку подружился (ттт), вкурил, что к чему. Конечно, отладки там - ещё мама не горюй, но уже забавно: лежит железка на соседнем столе, никуда проводами не подключенная, а я с эмулятора щёлкаю кнопочки и вижу, как на TFT-экране железки меняется состояние. Можно и в обратку - потыкал на TFT-экране кнопочки, смотришь на эмулятор - он отображает изменения.
Добби ооочень доволен. Я ещё пару лет назад говорил напарнику - нахер этот TFT-экран, если есть андроид? Был не услышан. Надеюсь, теперь буду услышан ;) Шутка ли - семидюймовый TFT-экран стоит 3 000 рублей, для пользователя это существенно. А смартфон - есть у каждого бомжа.
К тому же планирую, когда буду выкладывать в Google Play - сделать подписку, например, 100 руб/месяц. Курочка по зёрнышку, как известно. Заодно и разработку отобью, со временем.
Уже перелез на железный смартфон - кое-как установил драйвера для своего Honor 7A, и - вперёд! Работает, всё красяво. С интерфейсом, конечно, ещё куча работы, но - выправим потихоньку.
Сделано уже - кучу. Чтобы туда-сюда скрины не гонять, кому интересно, начиная с этого сообщения и ниже - выкладываю скрины: https://www.forumhouse.ru/posts/25741154/
Контроллер межпланетной пусковой установки, не иначе :)))
(для радистов спойлер - пользователь с ником -NMi-)
Ему и предназначалось, ты ж не радист в этом топике
Ну вот. Всё правильно! А почему ты так не хотел? Это очень по-java-вски.
--------------------------
Я чуть-чуть занудства позволю: ты понимаешь, что java интерпретируемый язык? Акция по ID у тебя ищется в каждом вызове
navController.navigate(R.id.action_global_nav_......);
Тилипоны все быстрые, конечно. Но я (по старинке) все ресурсы получаю при запуске, и потом уже использую готовые объекты. Не люблю я доверять жаве сосздание-удаление-создание ... и потом сборку мусора... но это скорее занудство мое.
Я чуть-чуть занудства позволю: ты понимаешь, что java интерпретируемый язык? Акция по ID у тебя ищется в каждом вызове
navController.navigate(R.id.action_global_nav_......);
Тилипоны все быстрые, конечно. Но я (по старинке) все ресурсы получаю при запуске, и потом уже использую готовые объекты. Не люблю я доверять жаве сосздание-удаление-создание ... и потом сборку мусора... но это скорее занудство мое.
Да мы это потом будем улуччать, всё будет норм ;) Щас не до рефакторинга, щас воюю с by design решениями от Google. Вот смотри, проблема - тут: https://stackoverflow.com/questions/31643193/navigationview-items-not-checking, объяснение - тут: https://issuetracker.google.com/issues/37048466#makechanges
Т.е. есть у тебя в Navigation Drawer меню, которое выезжает слева. Пока оно одноуровневое - NavigationView прекрасно выделяет щёлкнутый элемент списка. Захотел ты, как я - добавить подгруппу (ну очевидно же, чтобы было наглядно видно) - и ппц, это меню уже не работает как единое, т.е. пункты подгруппы при клике на них - не выделяются.
С одной стороны - всё верно идеологически: есть вложенное <menu> - хай оно само там чего-то рулит. С другой стороны, в практическом применении подгруппа - тупо для заголовка, и всё. Понимаешь, какая, млять, диалектика бытия?
Поборол:
Ну и переписал часть на загрузку при старте, как ты и просил:
Сам биндинг теперь много быстрее:
З.Ы. И это я тебе ещё не рассказывал, какие геморрои с backstack, если вызывать NavController.navigate - эта хрень добавляет вызов в backstaсk, тут вроде всё норм. Штатное поведение NavigationView - нихрена не добавляет переход в backstack - тут тоже всё норм.
А засада в том, что ViewPager, если происходит добавление переходов в backstack (ну шом потом по кнопке "назад" телепонькаться, ну ты понял) - начинает работать неправильно, потому как внутри себя хранит созданные view, и при переходе по "назад" - эти view не пересоздаёт, вообще НИКАКИХ событий им не посылает. Чуешь прикол, да?
Лечится это дело так:
Фухх. Бобёр выдохнул. Шо я имею сказать? В том зоопарке - дискотека с саблями: не туда пойдёшь - прирежут :) Но я не сдаюсь.
Немножко допилил, настройки там всякие, анимации переходов, новая цветовая гамма: https://youtu.be/JHSz6ZTS3WM
Поменяешь что-то в одном месте - ломается в другом. Не андроид, а минное поле :)))
Ну дык хорошо же!
Согласись - Андроид - прикольная платформа? Затягивает. Очень много возможностей и путей решения. Ну и глюков тоже много.
Вроде всё ну очччччень легко, и вдруг поведение не такое, как ожидаешь! ;)))) Но писать приятно и инструмент - сама Студия!!!! Шоп я так жил! По мне - так супер удобно.
Ну дык хорошо же!
Согласись - Андроид - прикольная платформа? Затягивает. Очень много возможностей и путей решения. Ну и глюков тоже много.
Вроде всё ну очччччень легко, и вдруг поведение не такое, как ожидаешь! ;)))) Но писать приятно и инструмент - сама Студия!!!! Шоп я так жил! По мне - так супер удобно.
Ну да, затягивает, не спорю. И про глюки - тоже не спорю :) Чего только стоит архитектурный про@б в виде зоопарка с getFragmentManager(), getSupportFragmentManager(), getChildFragmentManager() - это просто песня! Такое ощущение, что всё это дело допиливается наживую, по ходу :(
Ну и event propagation (bubbling) - сильно не хватает. Да и вообще, взаимодействие по цепочкам сверху-вниз - из рук вон плохо, костылями типа Bundle и пр.
Зато анимации красивые :)
З.Ы. Я злой сегодня, потому что из-за сраного ViewPager и использования getFragmentManager вместо getChildFragmentManager - текла память, ужасно. Пока разобрался - готов был монитор разбить.
Но затягивает, да.
Ты не психуй, а пойми - я не зря написал про множество решений. Видишь - кусок АПИ глючный - реши ту же задачу другим образом. Мне фрагменты сразу не понравились я своего мелкого ризалта добился, но на твои грабли не наступал. И больше не пользуюсь.
Фрагменты изначально нужны были для универсальности между планшетом и тилипоном. Вот тебе это зачем? Скилл ты себе на этой ебле отрастил - позавидовать... и чо?
Надеюсь - ты меня понимаешь? Не обижайся только!
----------------------
как Фортран - настоящему программисту (если не помнишь - тебе Женя пояснит ;) ), так для тилипона есть текст вью, имидж вью, лист вью. И линеар лейаут... ну может еще рилейтив. Вот честно - вообще больше ничего не надо. Для любителей извращений - навигейшн бары сверху, снизу.... ты вот на выдвижном уже наебался - потому как нехер извращениями пользоваться ;))))
------------------------
Ладно! Не бери в голову! Я ухрючился немного... меня пятёрка нагрела на бутылку Бакарди - там просто водка оказалась... я и расстроился! И главное понимаю, что доказать ничего не смогу... но очень хочется им эту бутылку забить!
Дык прозрачный если Баккарди это и есть просто водка)
Поменяешь что-то в одном месте - ломается в другом. Не андроид, а минное поле :)))
Дак потомушто это линупс ;)
Я вон давеча решил перещупать импортозамещённый Альт-линукс. Допилено знатно, конечно. В AD и Windows network практически с полпинка залетает. Но, б-ть, вход под доменным пользователем в систему - это просто треш. Неаккуратно ESC жмакнул - и тебе ни поля ввода в модальном окне, нихера...
Оно коннектится, и уже получает с контроллера данные! Р - ррадость :)
Оно коннектится, и уже получает с контроллера данные! Р - ррадость :)
1.А ты разве с эмулятора не коннектился?
2.Покажи картинку (видео) последнего варианта.
Пока с эмулятора только и работаю. Сейчас коннекчусь уже к железянному контроллеру, по IP в локальной сети. Сам контроллер через Wi-Fi-свисток всё это дело разруливает. Ещё раз убеждаюсь, что единый текстовый протокол - весчь: неважно, откуда поступила команда - через UART, по Wi-Fi, через внешний сервис gardenboss.ru - оно это дело разберёт и выплюнет ответ.
Вот, приделал первую версию голосового управления (эмуль тормозит при захвате видео): https://youtu.be/A_huwPzCbPE Потихоньку буду расширять этот функционал, чтобы уручную, значится, не тыкать много конопочек.
Также уже приделал управление фрамугами: https://youtu.be/_oMSrU1TL0E
Короче, дела движутся ;) Интерфейс устаканим, с NavigationView я потихоньку подружился (ттт), вкурил, что к чему. Конечно, отладки там - ещё мама не горюй, но уже забавно: лежит железка на соседнем столе, никуда проводами не подключенная, а я с эмулятора щёлкаю кнопочки и вижу, как на TFT-экране железки меняется состояние. Можно и в обратку - потыкал на TFT-экране кнопочки, смотришь на эмулятор - он отображает изменения.
Добби ооочень доволен. Я ещё пару лет назад говорил напарнику - нахер этот TFT-экран, если есть андроид? Был не услышан. Надеюсь, теперь буду услышан ;) Шутка ли - семидюймовый TFT-экран стоит 3 000 рублей, для пользователя это существенно. А смартфон - есть у каждого бомжа.
К тому же планирую, когда буду выкладывать в Google Play - сделать подписку, например, 100 руб/месяц. Курочка по зёрнышку, как известно. Заодно и разработку отобью, со временем.
Уже перелез на железный смартфон - кое-как установил драйвера для своего Honor 7A, и - вперёд! Работает, всё красяво. С интерфейсом, конечно, ещё куча работы, но - выправим потихоньку.
Сделано уже - кучу. Чтобы туда-сюда скрины не гонять, кому интересно, начиная с этого сообщения и ниже - выкладываю скрины: https://www.forumhouse.ru/posts/25741154/
Контроллер межпланетной пусковой установки, не иначе :)))
Да, я в курсе, спасибо. Приложение уже в плеймаркете.
DIYMan можешь им не отвечать, это боты. Подробности тут - http://arduino.ru/forum/obshchii/chistim-forum-ot-spama-vmeste?page=6#comment-530789