๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
๋‰ด์ฐจํŠธ
๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • Flutter
    • Android
    • Algorithm
      • Python
    • Test
    • Python
    • ์ƒ์‚ฐ์„ฑ
    • ๊ฒฝ์ œ
    • ์˜์–ด
    • ์ƒํ™œ ํŒ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

ํƒœ๊ทธ

  • ๋ผ์ดํ”„ํ•ดํ‚น์Šค์ฟจ
  • enum
  • Flutter ํ˜„์žฌ
  • Python ๋‚ด์žฅ ํ•จ์ˆ˜
  • ์ผ์ฐ ์ž๋Š” ๋ฒ•
  • getx
  • cruscal
  • ์ฐฝ๋ถ€์บ 
  • flutter
  • Flutter pattern
  • null safety
  • PYTHON
  • AssetThumb
  • flutter 2.0
  • ๊ฐ“์ƒ
  • ํŠน์ง•
  • Flutter ๋ฏธ๋ž˜
  • bloc
  • flutter webview
  • ํŒŒ์ด์ฌ
  • Flutter ๊ณผ๊ฑฐ
  • Flutter Web
  • Image.memory
  • Android
  • ์ฐฝ์—…๋ถ€ํŠธ์บ ํ”„
  • Flutter ๊ธฐ์ดˆ ์‹œ๋ฆฌ์ฆˆ
  • ๋„ค์ด๋น„ ์”ฐ ์ผ์ฐ ์ž๋Š” ๋ฒ•
  • Firebase
  • Flutter ์˜ ์—ญ์‚ฌ
  • python ๋‚ด์žฅํ•จ์ˆ˜

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ

๋‰ด์ฐจํŠธ

Android

Android / EditText TouchMode Cursor ๊นœ๋นก์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ

2020. 7. 24. 20:32

 

EditText๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๋ฏผ๊ฐํ•œ Widget์ž…๋‹ˆ๋‹ค. ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ์ปค์Šค๋ฅผ ๋ฐ›์•„์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ปค์Šค ๊ด€๋ฆฌ๋ฅผ ์ž˜ ํ•ด์ฃผ์–ด์•ผ ํ•˜์ฃ . ์ด๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š์•˜์„๋•Œ์—๋„ EditText์— ํฌ์ปค์Šค๊ฐ€ ๊ฐ€์„œ ํ‚ค๋ณด๋“œ๊ฐ€ ์˜ฌ๋ผ์˜ค๊ณ ๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Œ์—๋„ EditText์˜ ์ปค์„œ๊ฐ€ ๊นœ๋นก์ด๋Š” ๋ถˆ์ƒ์‚ฌ๋ฅผ ๊ฒช๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ๊ต‰์žฅํžˆ ๋ฏธ๊ด€์ƒ์œผ๋กœ ์ข‹์ง€ ์•Š์•„ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์•ฑ์˜ ์™„์„ฑ๋„๊ฐ€ ๋–จ์–ด์ ธ ๋ณด์ด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

์™ ๋งŒํ•œ ๊ฒƒ์€ ConstraintLayout์ด๋‚˜ LinearLayout์— android:focusable, android:focusableInTouchMode ์†์„ฑ๊ณผ android:inputType=”text” ๋“ฑ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜. EditText๊ฐ€ TouchMode๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋ผ์„œ ์ปค์„œ๊ฐ€ ๊ณ„์† ๊นœ๋นก์ด๋Š” ๊ฒƒ์€ ๊ณ ์น˜๊ธฐ ๊ต‰์žฅํžˆ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ๊ฐœ๋ฐœ ์ค‘์— ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋‹นํ•œ ์‚ฝ์งˆ์„ ํ–ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ง€์‹์€ ๋‚˜๋ˆ ์•ผ ํ•˜๋Š” ๊ฑฐ๋‹ˆ๊นŒ์š”!!

 

์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” TouchMode์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•ด์•ผ ๋ฉ๋‹ˆ๋‹ค. ํ„ฐ์น˜ ๋ชจ๋“œ๋Š” ๋ง๊ทธ๋Œ€๋กœ ํ„ฐ์น˜ํ•˜๋ฉด ์ง„์ž…๋˜๋Š” ๋ชจ๋“œ์ธ๋ฐ ์ง„์ž…ํ•˜๊ฒŒ ๋˜๋ฉด isFoucsableInTouchMode๊ฐ€ true์ธ ๋ทฐ(EditText)๋งŒ ํฌ์ปค์Šค๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ง์„ ๋ฐ˜๋Œ€๋กœ ํ•˜๋ฉด isFocusableInTouchMode๊ฐ€ false์ธ ๋ทฐ๋Š” ํ„ฐ์น˜๋ฅผ ํ•ด๋„ ํฌ์ปค์Šค๊ฐ€ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ด์ฃ . ๊ทธ๋ฆฌ๊ณ  ์ด์— ํ•ด๋‹น๋˜๋Š” View๋Š” EditText๋ฅผ ์ œ์™ธํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ทฐ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ EditText์— ํ•œ ๋ฒˆ ํฌ์ปค์Šค๊ฐ€ ๊ฐ€๋ฉด ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ํ„ฐ์น˜ํ•ด๋„ ๊ทธ ๋ทฐ์—๊ฒŒ ํฌ์ปค์Šค๊ฐ€ ๊ฐ€์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด EditText์˜ ์ž‘์—…์„ ๋งˆ์ณค์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ปค์„œ๊ฐ€ ๊นœ๋นก์ด๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

(Touch Mode์— ๋Œ€ํ•œ ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ์—์„œ https://developer.android.com/guide/topics/ui/ui-events#TouchMode)

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
        if (ev!!.action == MotionEvent.ACTION_DOWN) {
            val v = currentFocus
            if (v is EditText) {
                val outRect = Rect()
                v.getGlobalVisibleRect(outRect)
                if (!outRect.contains((ev.rawX.toInt()), (ev.rawY.toInt()))) {
                    v.clearFocus()
                    hideKeyboard(editText) // hideKeyboard๋Š” ๋‚ด๊ฐ€ ๋งŒ๋“  ํ•จ์ˆ˜๋‹ค.
                }
            }
        }
        return super.dispatchTouchEvent(ev)
    }

 

ํ•ต์‹ฌ ์•„์ด๋””์–ด๋ฅผ ์„ค๋ช…ํ•˜์ž๋ฉด.

 

1. TouchEvent๊ฐ€ ๋“ค์–ด์˜ฌ๋•Œ๋งˆ๋‹ค ์ตœ๊ทผ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์€ View๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•œ๋‹ค.

 

2. ๋งŒ์•ฝ ์ตœ๊ทผ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์€ View๊ฐ€ EditText๊ณ  Touch๋œ ์œ„์น˜๊ฐ€ EditText๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด EditText์˜ Foucs๋ฅผ clearFoucs() ํ•œ๋‹ค.

 

(์ €๋„ StackOverFlow์—์„œ ์ฐพ์•˜์–ด์š” ใ…Žใ…Ž https://stackoverflow.com/questions/4828636/edittext-clear-focus-on-touch-outside/8766475)

 

EditText, clear focus on touch outside

My layout contains ListView, SurfaceView and EditText. When I click on the EditText, it receives focus and the on-screen keyboard pops up. When I click somewhere outside of the EditText, it still h...

stackoverflow.com

 

์ฐธ๊ณ ๋กœ dispatchTouchEvent๋Š” Activity์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋ฅผ ์ž˜ ํ™œ์šฉํ•˜์—ฌ ์ƒํ™ฉ์— ๋งž์ถ”์–ด ์ฝ”๋“œ๋ฅผ ์งœ๊ธธ ๋ฐ”๋ž˜์š” :)

 

๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•˜๊ณ  ํ–‰๋ณต ์ฝ”๋”ฉํ•˜๊ธธ ๊ธฐ์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!

'Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Android / NestedScrollView ๋‚ด์˜ RecyclerView ์ž๋™ ์Šคํฌ๋กค ๋ฌธ์ œ (์Šคํฌ๋กค ๋ฐ€๋ฆผ ํ˜„์ƒ)  (0) 2020.08.04
Android Firebase ๋™์ ๋งํฌ (Dynamic Link)  (0) 2020.07.24
Firebase Release ๋ฒ„์ „ SHA1  (0) 2020.07.24
    'Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • Android / NestedScrollView ๋‚ด์˜ RecyclerView ์ž๋™ ์Šคํฌ๋กค ๋ฌธ์ œ (์Šคํฌ๋กค ๋ฐ€๋ฆผ ํ˜„์ƒ)
    • Android Firebase ๋™์ ๋งํฌ (Dynamic Link)
    • Firebase Release ๋ฒ„์ „ SHA1
    ๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
    ๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”