Android Viewbinding

Jungmin Lee·2021년 1월 8일
1

Android

목록 보기
6/7
post-thumbnail

들어가며

기존에 extention으로 바로 xml의 아이디를 가져다가 쓰거나 findViewById를 사용하였는데 이를 대체하는 Viewbinding이 등장하였다. 이전것과 다른 가장 큰 특징은 xml파일에서 id를 설정하지 않으면 .kt에서 불러서 사용될 수 없다는 점인데 나는 개인적으로 이 점이 불러서 사용할 때 필요한 것만 이름지어주면 바로 찾아서 쓸수 있어서 더 깔끔하다는 생각이 들어 좋은것같다.

build.gradle

android {
        ...
        viewBinding {
            enabled = true
        }
    }
    

xml파일 예시

첫줄의 아이디를 주목해보자

    <ImageView
        android:id="@+id/btn_to_signup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:src="@drawable/sign_up_text"
 />

.kt파일 예시

처음에 binding을 lateinit으로 선언하고 이후에 binding에 대한 내용을 정의한 후 contintView로 binding.root를 지정한다. 이전에 btn_to_signup으로 id를 직접 불러와서 사용했던것이 binding.btnToSignup으로 바뀌어 사용했다는 점이 다른데, 이렇게 언더바가 카멜케이스로 바뀌었다는 것을 확인할 수 있다. 이후 사용법은 동일하다.

class LoginActivity : AppCompatActivity() {
    private lateinit var binding: ActivityLoginBinding
    
    
        override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        binding = ActivityLoginBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)

        //btn_to_signup.setOnClickListener {
        binding.btnToSignup.setOnClickListener {
            startActivity(Intent(this, SignupActivity::class.java))
        }
    }
}        
profile
금융 도메인과 개발 지식을 함께 쌓아가는 주니어 개발자입니다😊

1개의 댓글

comment-user-thumbnail
2021년 1월 8일

매일 예시들이 많으니 도움이 됩니다 😊

답글 달기