다음은 태블릿에서 수행 할 응용 프로그램을 원합니다. Fragment0 결코 이동하지Android 조각을 다른 컨테이너로 이동합니다. 조각의 컨테이너 ID를 변경할 수 없습니다.
-----------------
| | | | |
| | | | |
|(0)| X | X | X |
| | | | |
| | | | |
-----------------
becomes
-----------------
| | | | |
| | | | |
|(0)|(1)| X | X |
| | | | |
| | | | |
-----------------
and then
-----------------
| | | | |
| | | | |
|(0)|(2)|(1)| X |
| | | | |
| | | | |
-----------------
etc...
가, 다른 사람이 오른쪽으로 이동됩니다 조각 (0)이 같은 조각 (1) ... (N)을 표시 할 몇 가지 메뉴가 있습니다. 오른쪽 가장자리에서 떨어져 나가는 파편은 파괴 될 것입니다.
그래서 내가 설정 내 XML의 그때 fragment1 인스턴스화 및 디스플레이 fragment0 수
적절한 아이디 (fragment0 ... fragment3)와 수평의 LinearLayout 및 포함 4 FrameLayout이와 레이아웃,하지만 난 이동할 수 없습니다입니다 ,
ERROR/AndroidRuntime(343): FATAL EXCEPTION: main
java.lang.IllegalStateException: Can't change container ID of fragment ...
내가 찾은 유일한 관련 질문 this one 및 that one있는 행운과 함께 제공하는 모든 다른 솔루션을 시도 : 그것은 오른쪽에, 내가 얻을. .add()
다음에 시도 FragmentTransaction.remove()
는 다른 순서를 시도하고 (심지어 누군가가 제안을 두 번으로 저지하려고)을 통해 절반 방법을 커밋, .replace()
을 시도 addToBackStack()
... 여전히 행운을 호출했습니다.
FragmentTransaction을 사용하여 이러한 조각을 이동할 수 있는지 여부는 질문입니다. 그렇다면, 내가 뭘 잘못했는지 (그리고 보너스, 그게 가능합니까?). 그렇다면 이것을 구현하는 올바른 방법은 무엇입니까?
매번 조각을 다시 인스턴스화하고 싶지는 않습니다 (각각 시간이 걸릴 수있는 웹에서 일부 쿼리를 수행함). 그것은 하나를 다시 활동에 다시 모든 데이터를 추출하는 것이 가능하지만 오히려
내가 찾고있는 것을하지는 않지만 코드를 변경하려고합니다 ... 내가 할 수 있으면 게시 할 것입니다 ... – Matthieu
내가 필요한 것을 할 수있었습니다. 내 변경 사항을 작성한 요지로 푸시하는 방법을 알 수 없으므로 여기에 설명을 추가합니다. https://gist.github.com/4166640 – Matthieu
실례합니다. 그건 typo이며,'frag_fragaccordion.xml'에서'RelativeLayout' 대신'LinearLayout'이어야합니다? – midnite