TGTGInsighttelegram intelligenceLIVE / telegram public index
← GZ学习频道

TGINSIGHT SIMILAR POSTS

Find similar content

Source channel @olddriverGDstudy · Post #14 · Mar 17

由于前段时间群里发生了买资源之间的掐架事件,记录一些话。 无忌说: 无论有些伙计是卖资源还是什么, 车队也管不着 反正车队的资源是免费获取的 不过,就算是卖资源 不要护逼, 不要为了那所谓的标签故意推不靠谱的资源, 还不允许别人反映, 就算卖资源,也要卖靠谱的资源, 不靠谱的资源给别人卖了别人会寒心, 赚那几十块钱倒了牌子有意思吗? 做人做事都要凭良心, 不要纠缠什么利益, 单纯的做一个修车人, 不快乐吗? 彩虹(少妇小专家)说: 修车就是修车 你以为你是柳永? 你以为你是李白? 公益大队 我们要的是什么 我们要的是性爱的欢愉? 我们要的灵魂的交流? 我们要的是水乳交融的感受? 我们要的是洒脱感? 都错了 我们要的是整片森林 我们要的是广阔天地 我们要的是雄鹰展翅在这片土地上空 我们用几辆碎银要的是什么 女人 御姐 嫩妹 淑女 熟女 环肥燕瘦 各有各的滋味 各有各的感觉 各有各的微笑 各有各的呻吟 各有各的美好 各有各的回忆 要的是什么 问问你自己 爱情 肉体 灵魂 是统一的吗 是矛盾的吗 是对立而统一的吗 是螺旋前进的吗 曾经志在四方的我们 甘心被推广 被卖资源 被鸡头 被黑车 左右自己的情感吗 影响自己的勇气吗 不 大队 要的是杀伐的乐趣 要的是勇做先锋的勇气 要的是山无棱才敢与君绝的决心 要的是踏破铁鞋无觅处,得来全不费功夫的洒脱 要的是待从头,收拾旧山河的豪迈 要的是怒发冲冠,凭栏处,潇潇雨歇的悲壮 要的是手接飞猱搏雕虎,侧足焦原未言苦的勇气 悲痛啊 可悲啊 大队狂客落魄尚如此啊 愿我们风云感会起屠钓吧 要继承先人的意志啊 要有原则啊 幼女 未成年 龙女 都不能去搞 加油吧,各位 (彩虹(少妇小专家)是无锡车队的管理,无忌的朋友,纯粹的出击者) 作者:无忌 标签:#原创,#杂谈

Results

3 similar posts found

Search: #viewmodel

当前筛选 #viewmodel清除筛选
Android Broadcast

@android_broadcast · Post #9572 · 10/18/2025, 11:35 AM

Вот реальная история, как знание механики работы ViewModel спасло мне вечер 👇 У меня приложение на Compose и Jetpack Navigation 3 (работает на основе состояния Back Stack). Экран «Навигатор файлов» открывает папки рекурсивно: по сути это тот же экран, но с другими данными. Все данные — из одной и той же ViewModel.❗️Баг: при переходе в папку навигация срабатывает, UI не меняется. Современные ИИ подсказали общие вещи, но не помогли — промты, видимо, подвели (тут мне ещё надо прокачать знания) 🙂 Вспомнил ключевой факт про архитектуру: 👉 Все ViewModel живут в ViewModelStore. 👉 В пределах одного ViewModelStoreOwner (Activity/Fragment/NavBackStackEntry) получение ViewModel по умолчанию идёт по типу. 👉 Если нужно несколько экземпляров одного типа на одном owner’е — используем key. Решение в одну строку — привязать ключ к ViewModel, связанный с текущей папкой: @Composable fun FileNavigator( folderId: Id, modifier: Modifier = Modifier, ) { // новый folderId → новый экземпляр ViewModel → новый UI-стейт val viewModel: FileNavigatorViewModel = viewModel( key = "files(rootId='$folderId')" ) // ... } Мини-чеклист, если ловите такой баг 👉 Один экран используется повторно с разными параметрами? → Нужен key. 👉 Меняется route, но owner тот же? → key обязателен. 👉 Используете Hilt/Koin? → У этих функций тоже есть параметр key (hiltViewModel(key=...), koinViewModel(key=...)). 👉 key должен детерминированно зависеть от входных данных (например, folderId). 👉 При навигации назад убедитесь, что ViewModel освобождается ожидаемо. Ещё нюанс - если у вас сложная иерархия графов, проверьте, к какому ViewModelStoreOwner вы реально привязаны. Рекомендую посмотреть мои видео по теме: 📹Разбор Jetpack Navigation 3 🪙Полный разбор Jetpack ViewModel в Android и Kotlin Multiplatform #android#compose#androidjetpack#viewmodel#архитектура

Android Broadcast

@android_broadcast · Post #8901 · 04/05/2025, 10:43 AM

🤖Альтернативный способ обработке one-off событий из ViewModel (EN, 10м) В статье рассказывается в чем сложность с обработкой одноразовых событий, которые надо передать из ViewModel в UI. Автор рассматривает способ через callback интерфейс в конструкторе ViewModel @HiltViewModel class MyViewModel @Inject constructor( // inject the interface private val toastMessages: ToastMessages, ) : ViewModel() { fun doSomething() { viewModelScope.launch { try { // execute async operation here } catch (e: CustomException) { // initiate a one-off event toastMessages.showToast(e.localizedMessage) } } } } 🔗 Альтернативная ссылка на статью #android#viewmodel#dagger#hilt

Android Broadcast

@android_broadcast · Post #9683 · 11/20/2025, 02:59 PM

🚀Lifecycle 2.10.0 вышел в стабильной версии! Google выпустила мажорное обновление библиотек Lifecycle. Этот релиз сфокусирован на улучшении интеграции с Compose. ⚙️rememberLifecycleOwner для Compose Новый композабл позволяет создавать изолированные LifecycleOwner внутри UI. Идеально для компонентов, которым нужно независимое управление состоянием — например, для HorizontalPager, где только активная страница должна быть в состоянии RESUMED. @Composable fun MyComposable() { val lifecycleOwner = rememberLifecycleOwner( maxLifecycle = Lifecycle.State.RESUMED, parentLifecycleOwner = LocalLifecycleOwner.current, ) CompositionLocalProvider( LocalLifecycleOwner provides lifecycleOwner ) { // Дочерние композаблы теперь имеют собственный жизненный цикл } } 🚀 Интеграция с Navigation 3 Новый артефакт lifecycle-viewmodel-navigation3 предоставляет готовый декоратор для автоматической привязки ViewModel к отдельным экранам в Navigation 3. NavDisplay( backStack = backStack, entryDecorators = listOf( rememberSaveableStateHolderNavEntryDecorator(), rememberViewModelStoreNavEntryDecorator(), // Добавляем эту строку ), entryProvider = entryProvider { /* ... */ } ) Удобства для разработчиков: 👉 Идиоматичный Kotlin API для создания кастомных CreationExtras CreationExtras { this[MY_CUSTOM_KEY] = "myValue" } 👉 Метод savedStateHandle.saved() теперь нативно поддерживает nullable типы 👉Конструкторы SavedStateHandle помечены как @VisibleForTesting ⚠️ Важное изменение Повышение minSdk с API 21 до API 23 — убедитесь, что ваше приложение соответствует новым требованиям. #Jetpack#Lifecycle#Compose#Navigation#ViewModel#Kotlin