Назовите отличия invalidate() от requestLayout()
requestLayout() и invalidate() — два метода, которые используются чтобы обновить View после его изменения. Но используются они для разных вещей.
invalidate() это метод, который при вызове гарантирует что в когда-то в будущем (довольно скоро после вызова invalidate(), но не сразу) будет вызван метод onDraw(). То есть этот метод нужен чтобы запланировать (добавить в очередь) перерисовку View.
После вызова requestLayout() когда-то в будущем будут вызваны методы onMeasure() и onLayout() у данной View, а также у всех ее родителей. При этом вызов метода requestLayout() не гарантирует вызов onDraw().
Таким образом, invalidate() нужен чтобы перерисовать View, а requestLayout(), чтобы заново оценить размеры View. Обычно эти два метода используются вместе, но invalidate() можно использовать отдельно, когда точно известно что размеры View никак не меняются.
Peer-to-peer собеседования
AI Sprints — обучение профессиям с ИИ
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе