fragment 제작시 supportFragmentManager가 인식이 안 됩니다. > QnA

본문 바로가기
사이트 내 전체검색

QnA

안드로이드 fragment 제작시 supportFragmentManager가 인식이 안 됩니다.

페이지 정보

profile_image
작성자 지환
댓글 7건 조회 117회 작성일 21-01-02 09:55

본문

댓글목록

profile_image

Scott님의 댓글

Scott 작성일
profile_image

지환님의 댓글의 댓글

지환 작성일
profile_image

Scott님의 댓글의 댓글

Scott 작성일

네 다행이네요. viewBinding 관련해서는 오늘 중에 글을 하나 올리고 링크를 걸어놓겠습니다.

profile_image

Scott님의 댓글의 댓글

Scott 작성일

viewBinding은 아래 링크를 참조하세요

https://flow9.net/bbs/board.php?bo_table=android&wr_id=27

profile_image

지환님의 댓글의 댓글

지환 작성일

답변 감사드립니다~!!
그러나 하나 의문이 드는 것이 제가 질문했던 바와 같이 MainActivity말고 다른 class를 만들었을 때, 그 class에서는 viewBinding으로 XML상 ID를 참조할 수 없습니다.
아무래도 ViewBinding을 선언한 것이 MainActivity class이기 때문에 그 안에서만 실행이 되는 것 같습니다.
하여 제가 생각한 바는 새로 만든 class가 MainActivity class를 상속받도록 하여 ViewBinding 기능을 사용하는 것입니다.
ex) class newone () : MainActivity() {
          var newContent = binding.~~
    }
이렇게 하니 새로 만든 class에서도 ViewBinding을 사용할 수 있는데 혹시 이렇게 사용하는 것이 효율적이고 맞는 방법인가요?
아니면 다른 더 좋은 방법이 있나요?

profile_image

Scott님의 댓글의 댓글

Scott 작성일

아 이건.. 그... 아답터를 참조하시면 됩니다.
뷰바인딩의 동작원리는
1. 레이아웃파일 -> 바인딩 클래스로 변환
2. 바인딩.inflate(레이아웃인플레이터) 로 실제 바인딩 생성
입니다.

그래서 어떤 클래스든 Context만 전달하면 LayoutInflater.from(context) 로 인플레이터를 생성할 수 있기 때문에, Context만 전달해주면 됩니다.
예를들어 NewOne 클래스라면
class NewOne(val context:Context) {
    val binding by lazy {레이아웃Binding.inflate(LayoutInflater.from(context)) }
    fun setView() {
        binding.textView.text = "바인딩"
    }
}
의 형태로 사용할 수 있습니다.

profile_image

지환님의 댓글의 댓글

지환 작성일

아~!! 무슨 말씀하시는지 이해했습니다! 답변에 감사드립니다!

회원로그인

회원가입

Site info.

Team Flow9
Address : 10, Gukjegeumyung-ro, Yeongdeungpo-gu, Seoul, Republic of Korea
Contact : flow9.net@gmail.com

접속자집계

오늘
97
어제
298
최대
411
전체
57,919
Copyright © flow9.net All rights reserved.