Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Androdアプリ開発におけるネストスクロール問題と向き合うの説明用途~NestedScrol...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Swimmy
December 24, 2023
2.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androdアプリ開発におけるネストスクロール問題と向き合うの説明用途~NestedScrollInteropConnectionは何してるの?編~
Swimmy
December 24, 2023
More Decks by Swimmy
See All by Swimmy
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
250
違いがワカルKotlinプログラマーへの道
reoandroider
0
170
違いのワカル Kotlinプログラマーへの道
reoandroider
0
270
[Jetpack Compose] 原理から見るSkippable対応
reoandroider
1
370
Androdアプリ開発におけるネストスクロール問題と向き合うの説明用途
reoandroider
0
3.4k
Androdアプリ開発におけるネストスクロール問題と向き合うの説明用途
reoandroider
0
3.2k
Roborazziを最大限に活用する(導入編)
reoandroider
0
360
Master of NestedScroll
reoandroider
0
16k
Jetpack_Composeで_半円のプログレスバーを作った話
reoandroider
0
470
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
740
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
We Have a Design System, Now What?
morganepeng
55
8.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
290
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
How GitHub (no longer) Works
holman
316
150k
Automating Front-end Workflow
addyosmani
1370
210k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
Technical Leadership for Architectural Decision Making
baasie
3
450
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Scaling GitHub
holman
464
140k
Transcript
相互運用上の注意点 NestedScrollInteropConnectionは何をしているのか? internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 NestedScrollConnectionを実装 internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 AndroidView同様にHelperクラスを介する internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 スクロールする前の制御 internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 ネストスクロールができるか確認 internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 親にスクロール消費量を送る internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll(...) return toOffset(consumedScrollCache, available) } }
相互運用上の注意点 スクロール消費量と消費されなかった量を送る internal class NestedScrollInteropConnection(...) : NestedScrollConnection() { private val
nestedScrollChildHelper = NestedScrollingChildHelper(...) ... override fun onPreScroll(...): Offset { if(nestedScrollChildHelper.startNestedScroll(...)) { ... nestedScrollChildHelper.dispatchNestedScroll( composeToViewOffset(consumed.x), composeToViewOffset(consumed.y), composeToViewOffset(available.x), composeToViewOffset(available.y), ... )