5

Tôi có một hoạt động với thanh tác vụ và các thanh tác vụ. Khi tôi chọn một mục từ nội dung của các tab, tôi đang cố gắng thay thế đoạn hiện tại bằng một đoạn mới, thêm giao dịch vào ngăn xếp lại và ẩn các tab.Ẩn các tab Hành độngBar với chế độ điều hướng ảnh hưởng xấu đến hậu trường phân đoạn

Tôi ẩn các tab bằng cách thay đổi chế độ điều hướng của thanh tác vụ thành chuẩn.

Vấn đề là khi tôi nhấn nút quay lại, tôi chỉ nhận được một cái nhìn trống với thanh hành động (ở chế độ tiêu chuẩn) .. Giao dịch phân đoạn dường như không bị đảo ngược.

Nếu tôi không che giấu các tab bằng cách thay đổi chế độ điều hướng để tiêu chuẩn, sự đảo ngược giao dịch hoạt động tốt ..

Tôi đã thử trọng báo chí lại để thay đổi chế độ chuyển hướng trở lại tab, nhưng nó không hoạt động.

Ai đó có thể cho tôi biết họ sẽ đạt được điều này như thế nào?

Đây là mã nơi các tab được ẩn đi và giao dịch đoạn diễn ra:

 ActionBar actionBar = getActivity().getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

     Fragment albumListFragment = new AlbumListFragment(); 
     albumListFragment.setArguments(bundle); 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 

     ft.replace(android.R.id.content, albumListFragment); 
     ft.addToBackStack(null); 

     // Commit the transaction 
     ft.commit(); 

Để rõ ràng: Tôi hy vọng rằng bức xúc trở lại sau khi giao dịch này đã được cam kết, các tab sẽ trở lại vào xem với đoạn trước. Tại thời điểm này sau khi nhấn lại, nó không hiển thị các tab HOẶC đoạn.

Trả lời

8

Không chắc chắn nếu câu hỏi này vẫn còn có liên quan hay không, nhưng tôi dường như có may mắn ẩn các tab sau khi chuyển đổi đoạn.

Từ ListFragment của tôi, tôi thực hiện chuyển đổi đoạn tiêu chuẩn rất giống với cách bạn đang thực hiện nó trong mã của mình.

Trong đoạn chi tiết của tôi, tuy nhiên, tôi ẩn thanh hành động trong phương thức onCreate:

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    ActionBar actionBar = getActivity().getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

} 

và hiển thị nó một lần nữa trong phương pháp onPause tôi:

public void onPause() { 

    super.onPause(); 

    ActionBar actionBar = getActivity().getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

} 
Các vấn đề liên quan