Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
キーボードの切替を いい感じにしたい
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryo Sakaguchi
April 19, 2018
Programming
2.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
キーボードの切替を いい感じにしたい
potatotips #50
https://github.com/wakwak3125/KeyboardShowHideSample
Ryo Sakaguchi
April 19, 2018
More Decks by Ryo Sakaguchi
See All by Ryo Sakaguchi
なんとなくgRPC-Java を使ってるそこの俺、gRPC-Kotlin に移行したらどうだ?
wakwak3125
0
25
Android Architecture Componentsを使って、改善・効率化するAndroidアプリ開発
wakwak3125
0
1.4k
Test multiple APKs with Robolectric
wakwak3125
0
840
Clip, Elevation and ViewOutlineProvider
wakwak3125
1
1.4k
WebView as Fancy and effective View
wakwak3125
1
1.7k
ViewPager2をちょっとさわってみよう
wakwak3125
0
1.7k
年末だし、振り返るKotlin
wakwak3125
1
1.2k
社内ライブラリのアップデートフロー
wakwak3125
4
3.9k
Wantedly Peopleのリリースフロー
wakwak3125
1
4.9k
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
110
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
すこし踏み込む CancellationToken
htkym
2
1.6k
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
340
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
380
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
310
phperだってパンチカードでコーディングしたい
o0h
PRO
0
230
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
360
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
140
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Utilizing Notion as your number one productivity tool
mfonobong
4
610
My Coaching Mixtape
mlcsv
0
340
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Statistics for Hackers
jakevdp
799
230k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
Transcript
©2018 Wantedly, Inc. 2018.4.19 - ΩʔϘʔυͷସΛ ͍͍ײ͡ʹ͍ͨ͠ QPUBUPUJQT 3ZP4BLBHVDIJ !XBLXBL
©2018 Wantedly, Inc. ͔Β୭͔ڭ͑ͯཉ͍͠ པΉ
©2018 Wantedly, Inc. w 3ZP4BLBHVDIJ!XBLXBL w 8BOUFEMZ *OD d
w 8BOUFEMZ1FPQMF About me
©2018 Wantedly, Inc. ͪΐͬͱߟ͑ͯΈͨ Ͳ͏ͬͯ·͔͢ʁ .FTTFOHFSͱ͔Ͱ͋Δͭ w ֆจࣈͱ͔ૹ৴͢Δࣸਅબͨ͠Γͱ͔͢Δͱ͜Ζ w Ϙλϯͱ͔Λλοϓͨ͠Β͍͍ײ͡ʹΓସΘͬͯ
͘ΕΔͭ w J04ͰΑ͘ݟΔ͔ʁ
©2018 Wantedly, Inc. ΩʔϘʔυͷସ దʹΔ߹ attachmentButton.setOnClickListener { if (!pickerContainer.isVisible()) {
val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() ImeUtil.showImeKeyboard(this, editText) } } val attachmentButton = findViewById<ImageView>(R.id.button_plus)
©2018 Wantedly, Inc. ΩʔϘʔυͷସ దʹΔ߹ val attachmentButton = findViewById<ImageView>(R.id.button_plus) attachmentButton.setOnClickListener
{ if (!pickerContainer.isVisible()) { val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() ImeUtil.showImeKeyboard(this, editText) } }
©2018 Wantedly, Inc. ΩʔϘʔυͷସ దʹΔ߹ val attachmentButton = findViewById<ImageView>(R.id.button_plus) attachmentButton.setOnClickListener
{ if (!pickerContainer.isVisible()) { val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() ImeUtil.showImeKeyboard(this, editText) } } όίϯ/ΨίϯΈ͍ͨͳԻ͕ฉ͖͑ͯͦ͜͏
©2018 Wantedly, Inc. ͪΐͬͱߟ͑ͯΈ·ͨ͠
©2018 Wantedly, Inc. ͪΐͬͱߟ͑ͯΈͨ .FTTFOHFSΛࢀߟʹ͢Δ ͬͨ͜ͱ w 7JFXߏͷEVNQͱͬͯΈΔ w BECTIFMMEVNQTZTBDUJWJUZUPQ
w ͻͨ͢ΒΓସ͑ͯΈͨ w ΩʔϘʔυͷߴ͞Λۃʹখ͘͞େ͖ͯ͘͠ସࣗମʹͲ͏੍͍ͬͨݶԽͰߦΘΕ͍ͯΔ͔͔֬Ίͨ w ҙѱʹͳͬͨؾ࣋ͪͰյ͠ʹ͔͔Δ
©2018 Wantedly, Inc. ͪΐͬͱߟ͑ͯΈͨ .FTTFOHFSΛࢀߟʹ͢Δ Θ͔ͬͨ͜ͱ w 7JFXͷߏ w ಛผͳมΘͬͨ$VTUPN7JFXΛ͍ͬͯΔ༷ࢠͳ͔ͬͨɻ
w ͻͨ͢ΒΓସ͑ͨ w ΩʔϘʔυͷཪʹ7JFX͕͋ΔงғؾΛ௫Μͩ w ͱ͍͏͜ͱΩʔϘʔυΛӅ͢ʢด͡Δʣࡍʹߴ͕͞มΘΒͳ͚Εྑ͍ͷͰʁ w ۃͳߴ͞ͷ߹NJONBY)FJHIUΛઃఆ͍ͯ͠Δͷ͔ͿͬյΕΔ͜ͱͳ͔ͬͨ
©2018 Wantedly, Inc. ͬͯΈͨ ΩʔϘʔυΛด͡Δࡍʹߴ͞Λม͑ͳ͍Α͏ʹ͢ΔΞϓϩʔν
©2018 Wantedly, Inc. ΩʔϘʔυͷସ దʹΔ߹ val attachmentButton = findViewById<ImageView>(R.id.button_plus) attachmentButton.setOnClickListener
{ if (!pickerContainer.isVisible()) { val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) toAdjustNothing() pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() toAdjustResize() ImeUtil.showImeKeyboard(this, editText) } }
©2018 Wantedly, Inc. ΩʔϘʔυͷସ ͪΐͬͱஸೡʹΔ߹ val attachmentButton = findViewById<ImageView>(R.id.button_plus) attachmentButton.setOnClickListener
{ if (!pickerContainer.isVisible()) { val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) toAdjustNothing() pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() toAdjustResize() ImeUtil.showImeKeyboard(this, editText) } }
©2018 Wantedly, Inc. ΩʔϘʔυͷସ ͪΐͬͱஸೡʹΔ߹ val attachmentButton = findViewById<ImageView>(R.id.button_plus) attachmentButton.setOnClickListener
{ if (!pickerContainer.isVisible()) { val params = window.attributes ImeUtil.hideImeKeyboard(this, editText) toAdjustNothing() pickerContainer.visible() window.attributes = params } else { pickerContainer.gone() toAdjustResize() ImeUtil.showImeKeyboard(this, editText) } } ΘΓ͔͠εϜʔζʂ
©2018 Wantedly, Inc. UP"EKVTU3FTJ[F 4PGU*OQVU.PEF ͦΕͧΕͲ͏͍͏ಈ͖Λ͢Δͷ͔ fun toAdjustResize() { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
} •LayoutManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE •͜ΕWindowʹΩʔϘʔυͷग़ݱͷࡍʹɺΩʔϘʔυ͕ද͍ࣔͯ͠Δcontentsʹ͔ͿΒͳ͍Α͏ʹ WindowͷResizeΛ͢Δͷ
©2018 Wantedly, Inc. UP"EKVTU/PUIJOH 4PGU*OQVU.PEF ͦΕͧΕͲ͏͍͏ಈ͖Λ͢Δͷ͔ fun toAdjustNothing() { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_Nothing)
} •LayoutManager.LayoutParams.SOFT_INPUT_ADJUST_Nothing •ΩʔϘʔυͷग़ݱ࣌ʹɺWindowͷߴ͞ௐͳͲΛ·ͬͨ͘͠ͳ͘ͳΔϞʔυɻ ຊʹԿ͠ͳ͍ͷͰɺ௨ৗ࣌ʹ͏ͱcontentsͱ͔Ϳͬͯ͠·͏
©2018 Wantedly, Inc. UP"EKVTU/PUIJOH %FNP"QQ fun toAdjustNothing() { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_Nothing) }
•LayoutManager.LayoutParams.SOFT_INPUT_ADJUST_Nothing •ΩʔϘʔυͷग़ݱ࣌ʹɺWindowͷߴ͞ௐͳͲΛ·ͬͨ͘͠ͳ͘ͳΔϞʔυɻ ຊʹԿ͠ͳ͍ͷͰɺ௨ৗ࣌ʹ͏ͱcontentsͱ͔Ϳͬͯ͠·͏
©2018 Wantedly, Inc. ͜ͷͭΛదʹΓସ͑Δ ͱɺ͏·͘ߦ͘
©2018 Wantedly, Inc. ແཧཧײ͋ΔͷͰεϚʔτͳ ํ๏ืू͍ͯ͠·͢
©2018 Wantedly, Inc. IUUQTHJUIVCDPNXBLXBL ,FZCPBSE4IPX)JEF4BNQMF ࠓͷαϯϓϧ͜͜ʹ͋Γ·͢
©2018 Wantedly, Inc. 5IBOLT