프레그먼트 마지막 상태(텍스트 및 setClickable(false)) 저장하는 방법이 궁금합니다. > QnA

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

QnA

안드로이드 프레그먼트 마지막 상태(텍스트 및 setClickable(false)) 저장하는 방법이 궁금합니다.

페이지 정보

profile_image
작성자 wngjswns
댓글 4건 조회 176회 작성일 21-10-19 16:14

본문

댓글목록

profile_image

Scott님의 댓글

Scott 작성일

프래그먼트를 전역변수로 선언해 두고  onCreate에서 생성하고 사용하면 됩니다.

lateinit var aFragment: Fragment
lateinit var bFragment: Fragment

override fun onCreate() {

    aFragement = AFragment()
    bFragement = BFragment()

}

fun setFragment() {
    ...
    transaction.add(레이아웃, aFragment)
}


이런식으로 하면 생성되어 있는 프래그먼트 정보가 유지됩니다

profile_image

wngjswns님의 댓글의 댓글

wngjswns 작성일

감사합니다. 알려주신대로 진행해 보았는데 강제 종료되면서
 java.lang.IllegalStateException: Fragment already added: HomeFragment{c2e0ddc} (c9a242f1-5cfa-433e-8624-c208fd93dde4 id=0x7f0801e5)
메시지가 뜨네요.

구글링해서 transaction.replace / transaction.remove 등을 사용해봤지만 잘 안되네요

profile_image

Scott님의 댓글의 댓글

Scott 작성일

이미 add 되어 있으면 같은 프래그먼트를 추가할 수 없기 때문에 show() 를 사용해서 보여줘야 합니다.

아! 음 기본 동작 구조는

저 setFragment() 메서드의 가장 첫 줄에

if(프래그먼트.isAdded()) {
...
로 추가 여부를 체크하는 코드가 있어야 합니다.

그리고 있으면 show() 를 없으면 기존처럼 add()를 해주시면 됩니다

profile_image

Scott님의 댓글

Scott 작성일

아 그리고 setFragment 를 사용하 실때 현재 set 할 프래그먼트가 지정되어야 하기 때문에

함수 모양이

fun setFragment( 이름: Fragment) { ...

가 되겠군요

회원로그인

회원가입

Site info.

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

접속자집계

오늘
322
어제
332
최대
659
전체
186,263
Copyright © flow9.net All rights reserved.