티스토리 뷰
액티비티와 프래그먼트에서 할 수 있음
viewBinding을 그래들에 추가하면 xml마다 뒤에 binding 이름을 붙여서 뷰바인딩할 때 사용할 수 있다.
예) activity_main.xml : ActivityMainBinding, text_fragment.xml : TextFragmentBinding
in Activity
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
in Fragment
private lateinit var binding: TextFragmentBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View?{
binding = TextFragmentBinding.inflate(inflater, container, false)
return binding.root
}
참고: 링크
아래는 예전에 적어둔 글
안드로이드 공식 문서
class MainActivity: AppCompatActivity(){
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
}
}
책에서 배우기를
class MainActivity: AppCompatActivity(){
val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(binding.root)
}
}
초기화 방법의 차이인 듯 하다.
둘 다
binding.<<id>>.메소드
형식으로 활용하는 방법은 같다.
좋은 설명
velog.io/@l2hyunwoo/AndroidViewBinding
또 다른 곳에서 가져옴.. 이건 다른 글 보다가
thdev.tech/android/2020/10/07/Remove-kotlinx-synthetic/
class MainActivity : AppCompatActivity() {
// 늦은 초기화를 이용하여 binding을 불러온다.
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 늦은 초기화의 binding에 대치시킨다.
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) // contentView에 등록
setSupportActionBar(binding.toolbar) // layout에 포함되어있는 Toolbar를 가져온다.
// layout에 포함된 fab를 찾는다.
binding.fab.setOnClickListener { view -> }
}
}
Fragment에서 뷰 사용하는 방법
728x90
'#1 > Android' 카테고리의 다른 글
[Android/java] Room 사용하기 (0) | 2021.05.31 |
---|---|
[Android/Kotlin] 코루틴 (0) | 2021.05.24 |
[Android] requireActivity (0) | 2021.05.14 |
비트맵 (0) | 2021.05.14 |
권한 관련 (0) | 2021.05.10 |
댓글