Ý nghĩa của addToBackStack (null) theo sau bởi một commit () là gì?
Trích dẫn tài liệu:
Bằng cách gọi addToBackStack (), giao dịch thay thế được lưu vào ngăn xếp phía sau để người dùng có thể đảo ngược giao dịch và khôi phục lại phân đoạn trước đó bằng cách nhấn nút Quay lại.
Nếu bạn thêm nhiều thay đổi vào giao dịch (chẳng hạn như thêm () hoặc xóa ()) khác và gọi addToBackStack (), thì tất cả các thay đổi được áp dụng trước khi bạn gọi commit () sẽ được thêm vào ngăn xếp phía sau dưới dạng một giao dịch duy nhất và nút Quay lại sẽ đảo ngược tất cả chúng với nhau.
Thứ tự mà bạn thêm các thay đổi vào FragmentTransaction không quan trọng, ngoại trừ:
Bạn phải gọi commit()
sau cùng. Nếu bạn đang thêm nhiều phân đoạn vào cùng một vùng chứa, thì thứ tự bạn thêm chúng sẽ xác định thứ tự chúng xuất hiện trong phân cấp chế độ xem.
Vì vậy, bạn phải cam kết cuối cùng.
Tại sao bạn cần truyền tham số null cho addToBackStack?
Nó không cần phải là null, nó có thể là một chuỗi. Nếu bạn không muốn, chỉ cần vượt qua null.
public trừu tượng FragmentTransaction addToBackStack (Tên chuỗi)
Đã thêm vào API cấp 11 Thêm giao dịch này vào ngăn xếp phía sau. Điều này có nghĩa là giao dịch sẽ được ghi nhớ sau khi nó được cam kết và sẽ đảo ngược hoạt động của nó khi sau đó bật ra khỏi ngăn xếp.
Tên tham số Một tên tùy chọn cho trạng thái ngăn xếp phía sau này, hoặc null.
Liên quan đến:
Có vẻ như mã này vô dụng vì tôi đã chạy mã mà không có dòng cuối cùng .addToBackStack (null) .commit () và nó chạy mà không gặp bất kỳ sự cố nào
Nếu bạn muốn điều hướng đến phân đoạn trước đó, hãy thêm nó vào backstack. Vì vậy, nó phụ thuộc vào việc bạn có muốn thêm phân mảnh vào backstack hay không.
Làm thế nào để có được đoạn đó sau khi được thêm vào như thế này?
Bạn đã có cá thể phân mảnh firstFragment
. Vì vậy, tôi không biết ý bạn là gì khi lấy mảnh vỡ sau này.
Thêm thông tin @
http://developer.android.com/guide/components/fragment.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)