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

프레그먼트 겹침 현상에 대해서..

0 추천

프레그먼트로 화면을 구성했습니다

 

프레그먼트에 있는 버튼을 누르면 또다른 프레그먼트를 열기 위해

 

MenuFragment menu = new MenuFragment();

 

FragmentManager fragmentManager = getFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

 

 

fragmentTransaction.add(R.id.fragment, menu);

 

fragmentTransaction.addToBackStack(null);

fragmentTransaction.commit();

 

위와 같이 해서 새 프레그먼트를 띄웠습니다

 

근데 새로 프레그먼트를 열면 기존 프레그먼트 위에 겹쳐 보입니다

 

그래서 새로 열리는 프래그먼트의 레이아웃에서 background 컬러를 바꿨더니

 

겹쳐보이지는 않지만 기존 프레그먼트에 있던 버튼 위치를 클릭하면(보이지는 않지만) 클릭이 되네요

 

어떻게 처리 해야 될까요?

(찾아보니 관련 이슈가 좀 있던데 아무리 검색해도 답을 못찾겠습니다)

 

감사합니다^^

siinwho (320 포인트) 님이 2016년 5월 28일 질문

2개의 답변

0 추천
해당 현상이 안드로이드 버그인지는 정확하지는 않지만, (개인적으로는 버그의 일종으로 보임) add 메소드를 사용할 경우 나타나는 현상입니다. replace 메소드를 사용하시고 back버튼을 눌러 이전 fragment로 스위칭하고 싶으시다면 addBackStack 를 추가하시면 됩니다.

//In your Activity class

getSupportFragmentManger().
  beginTransaction().
  replace(new SampleFragment(), R.id.frame_content, "MyFrame").
  addToBackStack(null).
 commit();

과 같은 형태로 사용하시면 됩니다. 정확한 코드는 구글의 안드로이드 개발자페이지를 검색하시길 바랍니다.
ISPARK 님이 2016년 5월 28일 답변
0 추천

저도 예전에 비슷한 현상을 겪어 고생한적이 있는데요. 

 

2가지 정도 방법이 있을거같아요. 

1. 상위에 ViewGroup을 두고 거기다가 fragment를 붙이셔도 되구요

2. 해당 layout 파일에 weight 속성을 전체로 주셔도 됩니다.  ( android:layout_weight="1" )

 

uuni (770 포인트) 님이 2016년 5월 29일 답변
...