마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Fragment 뒤로 돌아가기 질문 드립니다.

0 추천

안녕하세요. Fragment 관련하여 질문 드립니다.

A,B 2개의 Fragment가 있고 순차적으로 A ->  B로 화면 을 실행 했습니다.

버튼을 누르면 역순으로 B -> A로 돌아려고 하는데 잘 되지 않습니다....

Fragment는 android.support.v4.app.Fragment를 사용 중입니다. (android.app.Fragment 아닙니다.)

Fragment 추가시 Stack에 넣어고 돌아가기 클릭시 Stack에 저장된 Fragment를 불러와 돌아가는 방식입니다.

replace가 아닌 add로 하면 동작하지만 Fragment가 중첩되어 보여지는 문제가 있습니다.

 중첩이 안되게 하는 방식이 있는지, replace하여 구현할 수는 없는지 궁금합니다.!!

소스는 아래와 같습니다.

 protected void replaceFragment(Fragment fragment){
       stack.push(fragment);
       FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
       transaction.replace(R.id.layout_content, fragment);
//       transaction.add(R.id.layout_content, fragment);
       transaction.commit();
   }

 

protected void popFragment(){
    Fragment fragment = stack.peek();
    if( stack.size() > 1 ) {
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.remove(fragment);
        transaction.commit();
        stack.pop();
    }
}

 

덕이 (450 포인트) 님이 2019년 10월 11일 질문

1개의 답변

0 추천
 
채택된 답변

1. stack.push() 형태로 보다는 FragmentTransaction 에 addBackStack / popBackStack 호출하면 됩니다. 

2.  add로 하면 동작하지만 Fragment가 중첩되어 보여지는 문제가 있습니다. 

  • B Fragment 의 배경을 투명으로 둔거 아닌가요?
aucd29 (218,390 포인트) 님이 2019년 10월 16일 답변
덕이님이 2019년 10월 16일 채택됨
...