๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Android

[Chap 6] ๋ทฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ

by nitronium102 2021. 11. 30.

ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ : ์•กํ‹ฐ๋น„ํ‹ฐ

ํ™”๋ฉด์— ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ํด๋ž˜์Šค : ๋ทฐ ํด๋ž˜์Šค(TextView, ImageView ๋“ฑ)

-> ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๊ธฐ์˜ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๊ตฌ์กฐ

 

1) ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ

ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์ƒ์„ฑ -> XML ํŒŒ์ผ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž‘์„ฑ X

 

2) ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ๋กœ ์ž‘์„ฑ

ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ทฐ๋ฅผ XML์˜ ํƒœ๊ทธ๋กœ ๋ช…์‹œํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

XML์—์„œ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ๋Š” ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” setContentView() ํ•จ์ˆ˜๋งŒ ํ˜ธ์ถœํ•˜๋ฉด์„œ XML ํŒŒ์ผ์„ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. 

class MainActivity: AppCompatActivity() {
	override fun onCreate(savedInstanceState: Bundle?){
    	super.onCreate(savedInstanceState)
        // ํ™”๋ฉด ์ถœ๋ ฅ XML ๋ช…์‹œ
        setContentView(R.layout.activity_main)
    }
}

 

ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด XML ํŒŒ์ผ๋กœ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค. ํ™”๋ฉด ๊ตฌํ˜„์€ XML๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ๋Š” ๋„คํŠธ์›Œํ‚น, ๋ฐ์ดํ„ฐ ํ•ธ๋“ค๋ง, ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋“ฑ์˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ .

 

๋ทฐ ํด๋ž˜์Šค

๋ทฐ ๊ฐ์ฒด์˜ ๊ณ„์ธต ๊ตฌ์กฐ

์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ View์˜ ํ•˜์œ„ ํด๋ž˜์Šค -> ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋ฅผ ํ†ต์นญํ•˜์—ฌ ๋ทฐ ํด๋ž˜์Šค๋ผ๊ณ  ํ•จ.

1) View : ๋ชจ๋“  ๋ทฐ ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค. ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค๋งŒ ํ™”๋ฉด์— ์ถœ๋ ฅ

2) ViewGroup : View์˜ ํ•˜์œ„ ํด๋ž˜์Šค์ง€๋งŒ ์ž์ฒด UI๋Š” ์—†์–ด์„œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. ์ผ์ข…์˜ ์ปจํ…Œ์ด๋„ˆ์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์‹ค์ œ๋กœ๋Š” ViewGroup์˜ ์„œ๋ธŒ ํด๋ž˜์Šค์ธ ๋ ˆ์ด์•„์›ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉ

* ๋ ˆ์ด์•„์›ƒ ํด๋ž˜์Šค : ๋‹ค๋ฅธ ๋ทฐ ๊ฐ์ฒด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋‹ด์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ œ์–ดํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ

3) TextView : ํŠน์ • UI๋ฅผ ์ถœ๋ ฅํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค. ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๋ทฐ

 

๋ ˆ์ด์•„์›ƒ ์ค‘์ฒฉ

๋ ˆ์ด์•„์›ƒ ๊ฐ์ฒด๋ฅผ ์ค‘์ฒฉํ•˜์—ฌ ๋ทฐ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฐ์ฒด๋ฅผ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด ์ด์šฉํ•˜๋Š” ํŒจํ„ด์„ ์ปดํฌ์ง€ํŠธ ํŒจํ„ด(composite pattern) ๋˜๋Š” ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(document object model)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๋ ˆ์ด์•„์›ƒ XML์˜ ๋ทฐ๋ฅผ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ

id ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹๋ณ„์ž๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ๊ทธ ์‹๋ณ„์ž๋กœ ๊ฐ์ฒด๋ฅผ ์–ป์–ด์™€์•ผ ํ•œ๋‹ค. id๋Š” ๊ผญ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ์€ ์•„๋‹ˆ๋ฉฐ ๋ ˆ์ด์•„์›ƒ XML์— ์„ ์–ธํ•œ ๋ทฐ๋ฅผ ๊ตฌ๋ณ„ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ๋Š” ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค. 

<TextView android:id="@+id/text1" /> // id ๊ฐ’ : text1

- id ๊ฐ’์€ ์•ฑ์—์„œ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค.

- XML์— id ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž๋™์œผ๋กœ R.java ํŒŒ์ผ์— ์ƒ์ˆ˜ ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€

- XML ์†์„ฑ๊ฐ’์ด @๋กœ ์‹œ์ž‘ํ•˜๋ฉด R.java ํŒŒ์ผ์„ ์˜๋ฏธ

 

// XML ํ™”๋ฉด ์ถœ๋ ฅ
setContentView(R.layout.activity_main)
// id๊ฐ’์œผ๋กœ ๋ทฐ ๊ฐ์ฒด ํš๋“
val textView1: TextView = findViewById(R.id.text1)

- setContentView() : ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜. ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ XML์˜ ๋‚ด์šฉ์ด ์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด์— ์ถœ๋ ฅ

 

๋ทฐ์˜ ํฌ๊ธฐ ์ง€์ •

layout_width, layout_height ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์–ผ๋งˆ๋งŒํผ์˜ ํฌ๊ธฐ๋กœ ํ™”๋ฉด์— View๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •.

1) ์ˆ˜์น˜

2) match_parent : ์ƒ์œ„ ๊ณ„์ธต์˜ ํฌ๊ธฐ

3) wrap_content : ์ž์‹ ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ํฌ๊ธฐ

-> ์ผ๋ฐ˜์ ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด match_parent๋‚˜ wrap_content๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ทฐ์˜ ๊ฐ„๊ฒฉ ์„ค์ •

1) margin : ๋ทฐ์™€ ๋ทฐ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ

2) padding : ๋ทฐ์˜ ์ฝ˜ํ…์ธ ์™€ ํ…Œ๋‘๋ฆฌ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ

-> margin, padding ์†์„ฑ์„ ์ด์šฉํ•˜๋ฉด ๊ฐ„๊ฒฉ์ด ๋„ค ๋ฐฉํ–ฅ ๋ชจ๋‘ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ์„ค์ •! ํŠน์ •ํ•œ ํ•œ ๋ฐฉํ–ฅ์˜ ๊ฐ„๊ฒฉ๋งŒ ์„ค์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด paddingLeft/Right/Top/Bottom๊ณผ Layout_marginLeft/Right/Top/Bottom ์†์„ฑ์„ ์ด์šฉ.

 

๋ทฐ์˜ ํ‘œ์‹œ ์—ฌ๋ถ€ ์„ค์ •(visibility ์†์„ฑ)

1) visible(default) : ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ์ถœ๋ ฅ

2) invisible : ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€

3) gone : ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ์ž๋ฆฌ ์ฐจ์ง€ X - ์ฒ˜์Œ์—๋Š” ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋‹ค๊ฐ€ ์–ด๋–ค ์ˆœ๊ฐ„์ด ๋˜๋ฉด ๋ณด์ด๊ฒŒ ์ฒ˜๋ฆฌ

android:visibility="invisible"

 

- ์ฝ”๋“œ์—์„œ ๋ทฐ์˜ visibility ์†์„ฑ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• : ๋ทฐ์˜ visibility ์†์„ฑ์„ View.VISIBLE / View.INVISIBLE๋กœ ์„ค์ •

visibleBtn.setOnClickListener {
	targetView.visibility = View.VISIBLE
}

* setVisibility๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”?

์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”์™€ ๋‹ค๋ฅด๊ฒŒ field๊ฐ€ ์•„๋‹ˆ๋ผ property! ์ฆ‰, ๋ณ€์ˆ˜์— getter/setter๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค. 

 

๊ธฐ๋ณธ์ ์ธ ๋ทฐ ์‚ดํŽด๋ณด๊ธฐ

ํ…์ŠคํŠธ ๋ทฐ : ๋ฌธ์ž์—ด์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๋ทฐ

  • android:text : TextView์— ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด/๋ฌธ์ž์—ด ๋ฆฌ์†Œ์Šค ์ง€์ •
  • android:textColor : ๋ฌธ์ž์—ด์˜ ์ƒ‰์ƒ ์ง€์ •(16์ง„์ˆ˜ RGB ํ˜•์‹)
  • android:textSize : ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ ์ง€์ •(์ˆซ์ž ์‚ฌ์šฉ, ๋‹จ์œ„ ์ƒ๋žต ๋ถˆ๊ฐ€) - ๋‹จ์œ„๋Š” px, dp, sp ๋“ฑ์„ ์‚ฌ์šฉ
  • android:textStyle : ๋ฌธ์ž์—ด์˜ ์Šคํƒ€์ผ์„ ์ง€์ •(bold, italic, normal ์ค‘์—์„œ ์„ ํƒ)
  • android:autoLink : TextView์— ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด์„ ๋ถ„์„ํ•ด ํŠน์ • ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด์— ์ž๋™ ๋งํฌ๋ฅผ ์ถ”๊ฐ€(web, phone, email)
  • android:maxLines : ๋ฌธ์ž์—ด์ด ํŠน์ • ์ค„๊นŒ์ง€๋งŒ ๋‚˜์˜ค๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜
  • android:ellipsize : maxLines ์†์„ฑ์„ ์ด์šฉํ•  ๋•Œ ์ถœ๋ ฅ๋˜์ง€ ์•Š์€ ๋ฌธ์ž์—ด์ด ๋” ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ‘œ์‹œ(start, middle, end)
    • start, middle์˜ ๊ฒฝ์šฐ singleLine = "true" ์†์„ฑ์œผ๋กœ ๋ฌธ์ž์—ด์„ ํ•œ ์ค„๋กœ ์ถœ๋ ฅํ–ˆ์„ ๋•Œ๋งŒ ์ ์šฉ

 

์ด๋ฏธ์ง€ ๋ทฐ : ์ด๋ฏธ์ง€๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๋ทฐ

  • android:src : ImageView์— ์ถœ๋ ฅํ•  ์ด๋ฏธ์ง€๋ฅผ ์„ค์ •(๋ฆฌ์†Œ์Šค ์ด๋ฏธ์ง€, ํŒŒ์ผ ์ด๋ฏธ์ง€, ๋„คํŠธ์›Œํฌ ์ด๋ฏธ์ง€ ๋“ฑ)
  • android:maxWidth, maxHeight, adjustViewBounds ์†์„ฑ : ImageView๊ฐ€ ์ถœ๋ ฅํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ์ตœ๋Œ€ ํฌ๊ธฐ ์ง€์ •
    • maxWidth, maxHeight ์†์„ฑ์€ adjustViewBounds์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.
    • ์†์„ฑ๊ฐ’์„ true๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ, ์ด๋ฏธ์ง€์˜ ๊ฐ€๋กœ์„ธ๋กœ ๊ธธ์ด์™€ ๋น„๋ก€ํ•ด ๋ทฐ์˜ ํฌ๊ธฐ๋ฅผ ๋งž์ถค
    • ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋‚˜ ๊ฐ€๋กœ์„ธ๋กœ ๋น„์œจ์ด ๋‹ค์–‘ํ•˜๋‹ค๋ฉด ๋ทฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ณด๋‹ค ์ปค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— layout_width, layout_height ์†์„ฑ์— ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค! 

 

๋ฒ„ํŠผ, ์ฒดํฌ๋ฐ•์Šค, ๋ผ๋””์˜ค ๋ฒ„ํŠผ

1) Button : ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌ

2) CheckBox : ๋‹ค์ค‘ ์„ ํƒ

3) RadioButton : ๋‹จ์ผ ์„ ํƒ์„ ์ œ๊ณต

-> RadioGroup๊ณผ ํ•จ๊ผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์ค‘ ํ•˜๋‚˜๋งŒ ์„ ํƒ ๊ฐ€๋Šฅ

 

์—๋””ํŠธ ํ…์ŠคํŠธ : ์‚ฌ์šฉ์ž๊ฐ€ ๊ธ€์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ทฐ

  • android:lines : ์ฒ˜์Œ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ์ค„ ์ž…๋ ฅ ํฌ๊ธฐ๋กœ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ์†์„ฑ
  • android:maxLines : ์ฒ˜์Œ์—๋Š” ํ•œ ์ค„ ํฌ๊ธฐ๋กœ ์ถœ๋ ฅ, ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ตœ๋Œ€ ๋ช‡ ์ค„๊นŒ์ง€ ๋Š˜์–ด๋‚  ๊ฒƒ์ธ์ง€๋ฅผ ์ •ํ•จ
  • android:inputType : EditText์— ๊ธ€์„ ์ž…๋ ฅํ•  ๋•Œ ์˜ฌ๋ผ์˜ค๋Š” ํ‚ค๋ณด๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ

 

๋ทฐ ๋ฐ”์ธ๋”ฉ

๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ์— ์„ ์–ธํ•œ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ฝ”๋“œ์—์„œ ์‰ฝ๊ฒŒ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

1) gradle ํŒŒ์ผ์— ๋‹ค์Œ์ฒ˜๋Ÿผ ์„ ์–ธ

android {
	(...์ƒ๋žต...)
    buildFeatures {
    	viewBinding = true
    }
}

-> ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ์— ๋“ฑ๋ก๋œ ๋ทฐ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ฝ”๋“œ์—์„œ ๋ทฐ๋ฅผ ์„ ์–ธํ•˜๊ณ  findByViewById() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๊ฐ€ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋ฏ€๋กœ ์ด ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋ทฐ๋ฅผ ์‚ฌ์šฉ

 

2) ํด๋ž˜์Šค ์ž๋™ ์ƒ์„ฑ

ex) activity_main.xml -> ActivityMainBinding

 

3) ๋ฐ”์ธ๋”ฉ ๊ฐ์ฒด ํš๋“

// ๋ฐ”์ธ๋”ฉ ๊ฐ์ฒด ํš๋“
val binding = ActivityMainBinding.inflate(layoutInflater)
// ์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด ์ถœ๋ ฅ
setContentView(binding.root)
// ๋ทฐ ๊ฐ์ฒด ์ด์šฉ
binding.visibleBtn.setOnClickListener { ... }

 

+a) ํŠน์ • ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ์„ ๋ฐ”์ธ๋”ฉ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ : XML ํŒŒ์ผ์˜ ๋ฃจํŠธ ํƒœ๊ทธ์— ์•„๋ž˜ ์†์„ฑ ์ถ”๊ฐ€

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:tools="http://schemas.android.com/tools"
    (์ƒ๋žต)
	tools:viewBindingIgnore="true">

 

๋Œ“๊ธ€