Trong ứng dụng của tôi, tôi có một hoạt động và tôi đang thêm hai đoạn tại thời gian chạy. Tôi cần trao đổi hai đoạn này cùng một lúc. Đoạn 1 bao gồm một nút và tôi muốn khi tôi bấm vào nút mảnh 1 di chuyển sang bên phải của màn hình và mảnh khác ở phía bên trái của hoạt động.Hoán đổi hai đoạn đồng thời
Trong phương thức onClick của nút tôi đã cố gắng một cái gì đó như thế này
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment newFragment = getFragmentManager().findFragmentById(R.id.pageA);
ft.remove(newFragment);
Fragment newFragmentB = getFragmentManager().findFragmentById(R.id.pageB);
ft.remove(newFragmentB);
ft.add(R.id.pageB, newFragment);
ft.add(R.id.pageA, newFragmentB);
ft.addToBackStack(null);
ft.commit();
}
Nhưng tôi đang nhận được lỗi sau
java.lang.IllegalStateException: Can't change container ID of fragment PageA{40653da0 #0 id=0x7f060001}: was 2131099649 now 2131099650
Tôi muốn một cái gì đó như thế này khi tôi nhấp vào nút trên Trang A thì Vị trí của Trang A và PageB nên trao đổi với nhau.
tức là những gì tôi cũng thấy nó không hoạt động trên tổ ong. Tôi chưa bao giờ thử nó trên ICS. sau đó nó có thể là một vấn đề Android –
Nó hoạt động trên ICS miễn là bạn loại bỏ và thêm một frag trong hai giao dịch riêng biệt (có một cái nhìn tại liên kết ở trên để xem nó được thực hiện như thế nào) – Matthew