이것이 실제로 Android API의 버그인지 궁금합니다.
다음과 같은 설정이 있습니다.
┌----┬---------┐
| | |
| 1 | 2 |
| |┌-------┐|
| || ||
| || 3 ||
└----┴┴-------┴┘
- 오른쪽 창에 조각 # 2 (검색 화면)를로드하는 메뉴입니다.
- 결과 목록 인 조각 # 3을 포함하는 검색 화면입니다.
- 결과 목록은 여러 곳에서 사용됩니다 (자체적으로 작동하는 고급 조각 포함).
이 기능은 전화기에서 완벽하게 작동합니다 (1 및 2 및 3은 ActivityFragment
s).
그러나이 코드를 사용했을 때 :
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment frag = new FragmentNumber2();
if(toLoad != null) frag.setArguments(toLoad);
transaction.replace(R.id.rightPane, frag);
transaction.commit();
어디에 R.id.leftPane
와 R.id.rightPane
있는 <fragment>
수평 선형 레이아웃의.
위의 코드는 상주하는 조각을 제거한 다음 새로운 조각으로 대체한다는 것을 이해합니다. Brilliant ...이 코드가 두 번째로 실행될 때 다음 예외가 발생하기 때문에 발생하지 않습니다.
07-27 15:22:55.940: ERROR/AndroidRuntime(8105): Caused by: java.lang.IllegalArgumentException: Binary XML file line #57: Duplicate id 0x7f080024, tag null, or parent id 0x0 with another fragment for FragmentNumber3
FragmentNumber3의 컨테이너가 복제되었고 더 이상 고유 ID가 없기 때문입니다. 새로운 조각이 추가되기 전에 초기 조각이 파괴되지 않았습니까 (?) 내 마음에 그것은 대체 되지 않았다는 것을 의미합니다 .
이것이 가능한지 누군가 말해 줄 수 있습니까 ( 이 대답 은 그렇지 않다는 것을 제안합니까) 아니면 버그입니까?