Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takao Sumitomo
PDF, PPTX
2,436 views
僕は上スワイプでBottomSheetを出したかっただけなんだ
2019-03-27 potatotips #60 の発表資料です。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
PPTX
充足可能性問題のいろいろ
by
Hiroshi Yamashita
KEY
料理を楽しくする画像配信システム
by
Issei Naruta
PDF
プログラムを高速化する話
by
京大 マイコンクラブ
PDF
中3女子でもわかる constexpr
by
Genya Murakami
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
by
Kitsukawa Yuki
PDF
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
充足可能性問題のいろいろ
by
Hiroshi Yamashita
料理を楽しくする画像配信システム
by
Issei Naruta
プログラムを高速化する話
by
京大 マイコンクラブ
中3女子でもわかる constexpr
by
Genya Murakami
Docker Compose 徹底解説
by
Masahito Zembutsu
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
by
Kitsukawa Yuki
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
What's hot
PDF
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
by
Kohei Nakamura
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
PDF
InfluxDB の概要 - sonots #tokyoinfluxdb
by
Naotoshi Seo
PDF
プログラミング支援AI GitHub Copilot すごいの話
by
Mitsushige Ishiguro
PDF
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
by
Genya Murakami
PDF
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
PPTX
ORB-SLAMの手法解説
by
Masaya Kaneko
PDF
アプリを成長させるためのログ取りとログ解析に必要なこと
by
Takao Sumitomo
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
PDF
Constexpr 中3女子テクニック
by
Genya Murakami
PDF
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
PDF
20230105_TITECH_lecture_ishizaki_public.pdf
by
Kazuaki Ishizaki
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
入門 シェル実装
by
Yusuke Sangenya
PDF
すごい constexpr たのしくレイトレ!
by
Genya Murakami
PDF
組み込みでこそC++を使う10の理由
by
kikairoya
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PPTX
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
by
Deep Learning JP
PDF
Redmineのチケット分類例
by
namamugi share
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
by
Kohei Nakamura
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
InfluxDB の概要 - sonots #tokyoinfluxdb
by
Naotoshi Seo
プログラミング支援AI GitHub Copilot すごいの話
by
Mitsushige Ishiguro
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
by
Genya Murakami
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
ORB-SLAMの手法解説
by
Masaya Kaneko
アプリを成長させるためのログ取りとログ解析に必要なこと
by
Takao Sumitomo
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
Constexpr 中3女子テクニック
by
Genya Murakami
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
20230105_TITECH_lecture_ishizaki_public.pdf
by
Kazuaki Ishizaki
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
入門 シェル実装
by
Yusuke Sangenya
すごい constexpr たのしくレイトレ!
by
Genya Murakami
組み込みでこそC++を使う10の理由
by
kikairoya
Glibc malloc internal
by
Motohiro KOSAKI
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
by
Deep Learning JP
Redmineのチケット分類例
by
namamugi share
More from Takao Sumitomo
PDF
sharedUserIdを使った俺得開発ツールの作り方
by
Takao Sumitomo
PDF
Viewを動的に変化させるアプローチ
by
Takao Sumitomo
PPTX
エンジニアがプロダクト育成を始めるまでにやったこと
by
Takao Sumitomo
PDF
用途に合わせたアニメーションの実装方法
by
Takao Sumitomo
PDF
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
by
Takao Sumitomo
PDF
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
PDF
高速でトライ&エラーを するために気をつけてること
by
Takao Sumitomo
PDF
Firefox OSの何が嬉しいか
by
Takao Sumitomo
PDF
勉強会資料 データ構造とアルゴリズム
by
Takao Sumitomo
PDF
勉強会資料 Uml概要
by
Takao Sumitomo
PDF
potatotips (iOS/Android開発Tips共有会) 第19回 資料
by
Takao Sumitomo
PDF
SQLiteDatabaseを無理矢理覗く
by
Takao Sumitomo
PDF
AdapterToolboxでRecyclerViewを楽にする
by
Takao Sumitomo
PDF
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
by
Takao Sumitomo
ODP
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
by
Takao Sumitomo
PDF
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
by
Takao Sumitomo
PPTX
Wantedlyのテスト事情
by
Takao Sumitomo
PDF
プロダクトを育てるのにGoogleのサービスが助けてくれること
by
Takao Sumitomo
PDF
テストがあればなんとかなる〜効率化までの道程〜
by
Takao Sumitomo
PPTX
Uml速習会
by
Takao Sumitomo
sharedUserIdを使った俺得開発ツールの作り方
by
Takao Sumitomo
Viewを動的に変化させるアプローチ
by
Takao Sumitomo
エンジニアがプロダクト育成を始めるまでにやったこと
by
Takao Sumitomo
用途に合わせたアニメーションの実装方法
by
Takao Sumitomo
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
by
Takao Sumitomo
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
高速でトライ&エラーを するために気をつけてること
by
Takao Sumitomo
Firefox OSの何が嬉しいか
by
Takao Sumitomo
勉強会資料 データ構造とアルゴリズム
by
Takao Sumitomo
勉強会資料 Uml概要
by
Takao Sumitomo
potatotips (iOS/Android開発Tips共有会) 第19回 資料
by
Takao Sumitomo
SQLiteDatabaseを無理矢理覗く
by
Takao Sumitomo
AdapterToolboxでRecyclerViewを楽にする
by
Takao Sumitomo
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
by
Takao Sumitomo
(beta)アプリを成長させるためのログ取りとログ解析に必要なこと
by
Takao Sumitomo
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
by
Takao Sumitomo
Wantedlyのテスト事情
by
Takao Sumitomo
プロダクトを育てるのにGoogleのサービスが助けてくれること
by
Takao Sumitomo
テストがあればなんとかなる〜効率化までの道程〜
by
Takao Sumitomo
Uml速習会
by
Takao Sumitomo
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
僕は上スワイプでBottomSheetを出したかっただけなんだ
1.
2019-03-27 potatotips #60
@cattaka_net 僕は上スワイプでBottomSheetを 出したかっただけなんだ Takao Sumitomo @cattaka_net
2.
2019-03-27 potatotips #60
@cattaka_net 自己紹介 ● 住友 孝郎(Takao Sumitomo) ● Wantedly, Inc. 所属 ● Androidアプリを主に担当 ● @cattaka_net Goは書かないけどゴーファーが好き (アイコンは気分で変わる)
3.
2019-03-27 potatotips #60
@cattaka_net
4.
2019-03-27 potatotips #60
@cattaka_net 本題
5.
2019-03-27 potatotips #60
@cattaka_net BottomSheetはご存知ですよね
6.
下から出てくるやつ ● BottomSheetDialogが有名 ● 例)Material Design ● by Eajy ● https://goo.gl/YrChM4
7.
これを上スワイプで出るようにしたかった こんなのが作りたかった→
8.
処理の本体はBottomSheetBehavior ←親のCoordinatorLayout ←子要素のView 1:Nested Scrollが親に伝わる 2:イベントをリレー BottomSheetBehavior 3:子要素のViewの座標を動かす
9.
アプローチ
10.
アプローチ ←ここのスクロールイベントを奪う BottomSheetBehavior 奪ったイベント どちらかにリレー
11.
スクロール量の奪い方
12.
親のViewにOnTouchListenerを仕込んで頑張る? ● 独自実装したくない... ● 別件でロングタップも使いたい ● スクロール開始の閾値とかやりたくない ←この部分に仕込む
13.
強引にNestedScrollする? 見た目上はBottomSheetの後ろにあるけど、 ViewTree上はNested ScrollできるViewを置く? Viewの構造的に無理だよね、、
14.
GestureDetectorを使う ● タッチイベントからユーザー操作の識別してくれる ● i.e. ロングタップやスクロール ←この部分に仕込む
15.
OnGestureListener ● GestureDetectorとセットで使う ● 便利なリスナー達 ● onDown ● onShowPress ● onFling ● onSingleTapUp ● onLongPress ● onScroll
16.
スクロール量の喰わせ方
17.
BottomSheetBehaviorに強引に喰わせる? ● そもそもスクロール量のsetterがない、、 BottomSheetBehavior 奪ったイベント
18.
NestedScrollイベントを捏造して喰わせる 奪ったイベント 子ViewがNested Scrollしたかのように して、親Viewにイベントを送る
19.
NestedScrollイベントの捏造方法 @Override public boolean onScroll(MotionEvent
e1, MotionEvent e2, float distanceX, float distanceY) { if (!isScrolling) { isScrolling = true; mCoordinatorLayout.onStartNestedScroll( mBottomSheetView, mBottomSheetView, ViewCompat.SCROLL_AXIS_VERTICAL, ViewCompat.TYPE_TOUCH ); } mCoordinatorLayout.onNestedPreScroll( mBottomSheetView, (int) distanceX, (int) distanceY, new int[2], ViewCompat.TYPE_TOUCH ); return true; } ←初回はNestedScrollの開始を伝える ←スクロールイベントを送る
20.
NestedScrollイベントの捏造方法 @Override public boolean onTouch(View
v, MotionEvent event) { if (event.getActionMasked() == MotionEvent.ACTION_UP) { if (isScrolling) { isScrolling = false; mCoordinatorLayout.onStopNestedScroll( mBottomSheetView, ViewCompat.TYPE_TOUCH ); } } return gestureDetector.onTouchEvent(event); } ←NestedScrollの終わりを伝える
21.
なんとか動いた!
22.
学んだこと
23.
NestedScrollは危険が危ない
24.
イベントハンドラがいっぱいある ● boolean onStartNestedScroll ●
void onNestedScrollAccepted ● void onStopNestedScroll ● void onNestedScroll ● void onNestedPreScroll ● boolean onNestedFling ● boolean onNestedPreFling
25.
メソッドの実装が2系統ある ● 新しいもの ● NestedScrollingChild2 ● NestedScrollingParent2 ● 古いもの ● NestedScrollingChild ● NestedScrollingParent
26.
ライブラリによっては1部分しか実装してない ● Viewの構造を入れ替えたとき、 途中にPreとか新旧とか、 片方しか実装してないのが混ざると、 動かない ● デバッガでステップ実行してると、 「ぉ、、、ぉぅ、、、」ってなる ● BottomSheetBehaviorはPreのみ実装
27.
みなさんも気をつけてください
28.
この発表のサンプルコード&アプリ ● cattaka/AndroidSnippets ● http://github.com/cattaka/AndroidSnippets/ ● BottomSheetBehaviorOpenBySwipeUpActivity.java ● Google Play ● https://goo.gl/HuAtZG ● Open by
up
29.
ご清聴ありがとうございました Takao Sumitomo @cattaka_net
Download