프래그먼트 작업 항상 트랜잭션에 replace()
을 사용했지만 프래그먼트의 뷰를 복원하고 해당 프래그먼트로 돌아올 때 다시로드되지 않도록 인스턴스 상태를 더 이상 저장할 필요가 없으면 좋겠다. 따라서 add()
으로 작업하기로 결정했습니다. 문제는 다른 조각을 추가 할 때 이전 조각보기가 배경에 그대로 남아 있고 괜찮습니다 (예상 한 동작입니다). 그러나 문제는 배경에서 실제로보기와 상호 작용할 수 있다는 것입니다. 예 :FragmentTransaction add() behavior
조각 내가 프래그먼트 추가하고 나중에 조각 B 추가 할 때 Button
조각 B가 TextView
을 가지고있다, 나는 할 수 있어요 클릭 조각 A의Button
, 심지어에 머물고 조각 B의보기.
내가 사용 :
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction().
add(getRootViewContainer(),fragment,fragment.getClass().getSimpleName());
if (shouldGoBack)
fragmentTransaction.addToBackStack(fragment.getClass().getSimpleName());
곳 getRootViewContainer()
반환 ID 내 활동의 주요 컨테이너로 사용하고있어 FrameLayout
의.
이제는 기본 동작이 add()
입니까?
그렇다면 적절한 방법이 있습니까 아니면 그냥 replace()
을 사용해야합니까?
솔루션을 아직 찾았습니까? 당신이하지 않은 경우에 아래를보십시오. 나는 내 자신을 사용하기 때문에 내 것이 효과가있을 것이라고 확신한다. –