💌 DSL을 이용한 레이아웃 만들기
- xml 작업 뷰 -> 코드 재활용 불편, 불필요한 파싱으로 성능 저하
 
- 소스 코드상에서 직접 뷰의 코드 작성 해 xml 변환에 따른 오버헤드 제거
 
📌 Anko Layouts 활용하기
💜 DSL 이용한 레이아웃 작성
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //setContentView(R.layout.activity_main)    // 주석처리
        verticalLayout{ // vertical 속성을 가지는 LinearLayout
            val name = editText() { hint = "Name" } // editText 객체
            button("Say Hello"){    // Button 뷰
                onClick { toast("Hello, ${name.text}") }    // 클릭 이벤트 처리
            }
        }
    }
}
💜 분리된 클래스에서 레이아웃 작성
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        MainUI().setContentView(this)
    }
}
// 분리된 레이아웃을 위한 클래스
class MainUI :AnkoComponent<MainActivity>{
    override fun createView(ui: AnkoContext<MainActivity>): View = with(ui) {
        verticalLayout{ 
            val name = editText() { hint = "Name" } 
            button("Say Hello"){  
                onClick { toast("Hello, ${name.text}") }  
            }
        }
    }
}
💜 LayoutParams 이용하기
verticalLayout{
	val name = editText() { hint = "Name" }
	button("Say Hello"){
		onClick { 
        		toast("Hello, ${name.text}") 
        		}
	}.lparams(width = wrapContent){ // width와 height에 wrapContent, matchParent 설정 가능
		horizontalMargin = dip(20)   // 왼쪽 오른쪽 마진설정 <-> verticalMargin
		topMargin = dip(10) // 4개 모든 마진 설정
            }
	}
💜 이벤트 리스너 처리
// 텍스트 뷰와 탐색 바 추가
val percent = textView() { text = "Seek!"}
            seekBar {
                onSeekBarChangeListener {
                    onProgressChanged { seekBar, progress, fromUser ->
                        percent.text = progress.toString()
                    }
                }
            }
💜 레이아웃 안에 레이아웃
verticalLayout{
            linearLayout{
                var button = button("Some text")
            }
💜 다양한 뷰의 속성
textView {
            text = "this is a text"
            textSize = 24f
            textColor = Color.GREEN
            textAlignment = View.TEXT_ALIGNMENT_CENTER
          }
var view_list = listView {
            }.lparams(width = matchParent, height = matchParent){ }
editText{
             hint = "placeholder of text"
             textSize = 24f
         }
imageView {
                setImageResource(R.drawable.ic_baseline_auto_awesome_24)
            }.lparams(width= matchParent, height = 100)