티스토리 뷰

#1/Android

뷰바인딩

_쿠나 2021. 5. 21. 10:58

액티비티와 프래그먼트에서 할 수 있음

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

 

[Android] View Binding을 사용해보자

안드로이드 스튜디오 업데이트하고 나서 id로 뷰가 참조가 안 된다고? 이제 View Binding으로 깔끔하게 코딩해보자

velog.io

 

또 다른 곳에서 가져옴.. 이건 다른 글 보다가

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에서 뷰 사용하는 방법

yoon-dailylife.tistory.com/57

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
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함