# λ μ΄μμ : λ·°(View)μ μμ±
# λ μ΄μμ : λ·°(View)
- λ·°(View)
: View ν¬λμ€μ μλΈν΄λμ€λ‘ λ§λ κ°μ²΄λ‘, μ‘ν°λΉν° νλ©΄μ ν κ° μ΄μμ λ·°λ‘ κ΅¬μ±λλ€.
+ λ·°λ ν¬κ² λ μ΄μμκ³Ό μμ ―μΌλ‘ λλμ΄μ§λ€.
μμ ―(Widget) | λ μ΄μμ(Layout) |
λ²νΌ, μ΄λ―Έμ§ λ±μ΄ νλ©΄μμ μ¬μ©λλ κ²μΌλ‘, λ·° λλ ViewGroupμ μλΈν΄λμ€λ‘μ λ¨λ μΌλ‘ μ¬μ©μ΄ κ°λ₯νλ€ | λ€λ₯Έ μμ ―μ λ΄μ λ°°μΉνλ νλ‘, μ¬λ¬ κ°μ λ·°λ₯Ό κ·μΉλλ‘ νλ©΄μ λ°°μΉν μ μλ€. |
: λ·° ν΄λμ€ κ³μΈ΅λ
# λ μ΄μμ : λ·°(View)μ μμ±
- View ν΄λμ€μ XML μμ±_id μμ±
: id μμ±μ κ²½μ° λͺ¨λ μμ ―μ μμ΄λλ₯Ό λνλ΄λ©°, ν°μΉ μ νΉμ λμμ΄ νμν κ²½μ° idλ₯Ό μ§μ νλ€.
--> μΌλ°μ μΈ id μμ±μ μμ ―μ μμ΄λλ₯Ό μλ‘ λΆμ¬νλ κ°λ μΌλ‘, '@+id/'μ νμμ λ°λ₯Έλ€. ( /μ λ€μλ μλ‘ μ μ₯ν id μμ± )
ex 1) λ²νΌ μμ ―μ idλ‘ button1 λΆμ¬
+ λ²νΌμ XML μμ±μ κ±°μ μ‘΄μ¬νμ§ μμ§λ§, μμ ν΄λμ€μΈ View, TextView μμ μμλ°μ μ μμ
+ Kotlin μ½λμμ λ²νΌ λ±μ μμ ―μ μ κ·Όν λμλ id μμ±μ μ§μ ν μμ΄λλ₯Ό μ¬μ©νλ€.
// μμ ― λ³μ = findViewById<μμ ―ν>(R.id.μμ ―id)
var button1 : Button
button1 = findViewById<Button>(R.id.button1)
- View ν΄λμ€μ XML μμ±_layout_width, layout_height μμ±
: λͺ¨λ μμ ―μ νμλ‘ λ€μ΄κ°λ μμ±μΌλ‘, layout_widthμ κ²½μ°λ λ²νΌμ λλΉλ₯Ό, layout_heightμ κ²½μ°λ λ²νΌμ λμ΄μ λν΄ μ μ©λλ€.
+ μμ±μ κ°μΌλ‘λ μλ 3κ°μ§ μ νμ§κ° μλ€.
wrap_content | λ²νΌμ λλΉ λ° λμ΄κ° κ·Έ μμ κΈμμ λ± λ§λ ν¬κΈ°λ‘ λ³νλ€ |
match_parent | λ²νΌμ κΈμμ μκ΄μμ΄ λ²νΌμ κ°μΈκ³ μλ λΆλͺ¨(λ μ΄μμ)μ λ± μ°¨λ ν¬κΈ°λ‘ λ°λ |
κ°μ μ«μλ‘ μ§μ μ§μ | dp (Density-Independent Pixels), sp(Scale-Independent Pixels) |
ex 1) layout_width, layout_height μμ±μ XML μ½λ 1
<LinarLayout
~~~ μλ΅ ~~~ >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="λ²νΌμ
λλ€" />
</LinearLayout>
ex 2)
ex 3)
- View ν΄λμ€μ XML μμ±_background μμ±
: λ·°μ λ°°κ²½κ³Ό μμ ―μ μμμ μ§μ νλ μμ±μΌλ‘, μ£Όλ‘ #RRGGBB κ°μΌλ‘ μ§μ νλ€.
+ μ¬κΈ°μ R, G, Bλ κ°κ° λΉ¨κ°μ, μ΄λ‘μ, νλμμ λνλ΄λ©° RR, GG, BBμ μμΉλ 16μ§μλ‘ ννν μ μλ€
ex 1) background μμ μ΄λ‘μμΌλ‘ λ³κ²½
ex 1) Line 7μ μΆκ°νμ¬ background μμ λΉ¨κ°μμΌλ‘ λ³κ²½
- View ν΄λμ€μ XML μμ±_margin μμ±
: μΈλΆ μ¬λ°±, μ¦ λ·°μ λΆλͺ¨ λ·° μ¬μ΄μ 곡κ°μ μ‘°μ νλ μμ±μΌλ‘, ν΄λΉ μ¬λ°±μ λ·° μμ μ μμμ ν¬ν¨λμ§ μλλ€λ μ μ μ μν΄μΌ νλ€.
+ λΆμ¬ κ°λ₯ν λ§μ§ μμ±
XML μμ± | κΈ°λ₯ |
layout_margin | μ, ν, μ’, μ° λ€ λ°©ν₯μ λ§μ§ μ§μ |
layout_marginTop | μμͺ½ λ§μ§ μ§μ |
layout_marginBottom | μλμͺ½ λ§μ§ μ§μ |
layout_marginLeft | μ’μΈ‘ λ§μ§ μ§μ |
layout_marginRight | μ°μΈ‘ λ§μ§ μ§μ |
ex 1) Line 16 μΆκ°νμ¬ λ§μ§ μμ± λΆμ¬νκΈ°
- View ν΄λμ€μ XML μμ±_ν¨λ©(Padding) μμ±
: λ΄λΆ μ¬λ°±, μ¦ λ·°μ λ·°μ λ΄μ©λ¬Ό μ¬μ΄μ 곡κ°μ μ‘°μ νλ μμ±μΌλ‘, λ§μ§ μμ±κ³Όλ λ¬λ¦¬ ν΄λΉ μ¬λ°±μ λ·° μμ μ μμμ ν¬ν¨λλ€.
+ λΆμ¬ κ°λ₯ν ν¨λ© μμ±
XML μμ± | κΈ°λ₯ |
padding | μ, ν, μ’, μ° λ€ λ°©ν₯μ ν¨λ© μ§μ |
paddingTop | μμͺ½ ν¨λ© μ§μ |
paddingBottom | μλμͺ½ ν¨λ© μ§μ |
paddingLeft | μΌμͺ½ ν¨λ© μ§μ |
paddingRight | μ€λ₯Έμͺ½ ν¨λ© μ§μ |
ex) Line 17μ μΆκ°νμ¬ ν¨λ© μμ± μ μ©νκΈ°
- View ν΄λμ€μ XML μμ±_visibility μμ±
: μμ ―μ΄ λ³΄μΌ κ²μΈμ§μ μ¬λΆλ₯Ό κ²°μ νλ μμ±
visible | λν΄νΈ κ°μΌλ‘, 보μ΄λ μν |
invisible | 보μ΄μ§ X, μλμ μ리 μ μ§ |
gone | 보μ΄μ§ X, μλμ μ리κΉμ§ μ¬λΌμ§ |
ex 1) Line 29 μμ νμ¬ button 2μ 'gone' μμ± λΆμ¬νκΈ°
ex 1) Line 19 μμ νμ¬ button 1μ 'invisible' μμ± λΆμ¬νκΈ°
- View ν΄λμ€μ XML μμ±_enabled, clickable μμ±
: enabled, clickable μ κ°κ° μμ ―μ λμ μ¬λΆμ ν΄λ¦ λ° ν°μΉ λμ μ¬λΆμ λν μμ±μΌλ‘, trueμ false κ°μ κ°μ§ μ μλ€.
--> λ μμ± λͺ¨λ λν΄νΈ κ°μ trueμ΄λ©°, XML μμλ³΄λ€ Kotlin μ½λμμ μ£Όλ‘ μ¬μ©λλ€λ νΉμ§μ΄ μλ€.
ex 1) Line 31 μμ νμ¬ button2μ enabled μμ±μ 'false' κ° λΆμ¬νκΈ°
ex 2) Line 62λ₯Ό μμ νμ¬ button5μ clickable μμ±μ 'false' κ° λΆμ¬νκΈ°