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
27
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
The Rails Doctrine Decade
koic
2
560
golang-bob.pdf
iwatsukayura
0
130
最近”作らせてる” ローカルAIアプリの話
akit37
0
450
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
560
Domain-Driven Transformation
hschwentner
2
2.3k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
200
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
sbt 2.0: takeoff
eed3si9n
0
150
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The browser strikes back
jonoalderson
0
1.8k
Documentation Writing (for coders)
carmenintech
77
5.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Become a Pro
speakerdeck
PRO
31
6.3k
Design in an AI World
tapps
1
350
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Site-Speed That Sticks
csswizardry
13
1.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
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