Tôi đang cố gắng quyết định và hiển thị đoạn trong phương thức onResume của hoạt động, nhưng trong trường hợp phân đoạn được thêm trước đó được chọn lại, hoạt động sẽ trống.Thay thế một đoạn với chính nó không hiển thị bất cứ điều gì
Mẫu mã (với một đoạn):
@Override
protected void onResume(){
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.myLayout, fragA);
trans.commit();
getSupportFragmentManager().executePendingTransactions();
}
Với mã trên, khi hoạt động này được tạo ra lần đầu tiên, nó cho thấy Fraga một cách chính xác, nhưng trong trường hợp tôi nhấn phím Home và sau đó chuyển trở lại hoạt động của tôi (để kích hoạt lại onResume), tất cả sẽ trống (có vẻ như fragA bị xóa).
Việc thay thế một đoạn đã thêm trước đó có tự xóa không? hoặc làm thế nào để không mất một mảnh nếu nó được thay thế bởi chính nó?
Tôi khởi tạo ** fragA ** in * onCreate *, có nghĩa là tôi liên tục tham chiếu đến đoạn của mình. Vậy tại sao nó không cho phép thêm nó sau khi loại bỏ đoạn đó? – waqaslam
Vì chính xác những gì tôi đã nói. Một khi bạn loại bỏ một thể hiện của một mảnh, bạn không thể thêm nó nữa. Của nó bị phá hủy, hoàn thành, không còn sử dụng được nữa. –
Một điều khác cần kiểm tra là R.id.myLayout là id của vùng chứa mà bạn muốn đưa mảnh vỡ của mình vào. Nếu có, hãy thử chuyển cuộc gọi thay thế của bạn để thay thế (R.id.myLayout, new FragmentAClass()) –