Tôi có một ViewPager và FragmentPagerAdapter được thiết lập trong một hoạt động với 3 đoạn. Tất cả các đoạn được tải đồng thời và được lưu trong bộ nhớ bằng cách sử dụngTạo các phân đoạn toàn màn hình theo chương trình
mPager.setOffscreenPageLimit(2);
Một trong những đoạn này lưu trữ bản xem trước máy ảnh mà tôi muốn làm toàn màn hình, không có thanh trạng thái hoặc thanh tác vụ. Các mảnh khác yêu cầu thanh tác vụ được hiển thị.
Làm cách nào để chỉ hiển thị toàn bộ đoạn xem trước của camera trong khi vẫn giữ hai đoạn còn lại bình thường? Tôi đã thử sử dụng các chủ đề, có nghĩa là phá vỡ thanh hành động.
lập trình gọi sau đây không được, vì nó buộc toàn bộ hoạt động được toàn màn hình (và do đó hai mảnh còn lại cùng với nó):
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
Tôi cũng đã cố gắng thực hiện ViewPager.OnPageChangeListener:
public void onPageSelected(int position) {
if(position == 1)
getActionBar().hide();
else
getActionBar().show();
}
Điều này ẩn thanh tác vụ nhưng không ẩn thanh trạng thái hệ thống (Tôi đang nói về vị trí thông báo, biểu tượng trạng thái và thời gian) và thanh tác vụ ẩn/hiển thị hoạt ảnh cũng rất hay thay đổi khi vuốt.
Ví dụ về những gì tôi muốn làm chính xác, hãy xem Snapchat - họ quản lý để kéo ra khỏi swiping giữa máy ảnh và các mảnh hoàn hảo.
Edit:
Vì vậy, tôi đã thay đổi onPageSelected này của tôi:
public void onPageSelected(int position) {
if(position == 1) {
MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
MainActivity.this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
} else {
MainActivity.this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
}
Điều này cho phép tôi thay đổi cho dù thanh trạng thái được hiển thị hay không. Tuy nhiên, nó gây ra một số lượng lớn jank. Cùng một vấn đề với thanh hành động.
Tôi nhận thấy rằng trong Snapchat thanh trạng thái sẽ trượt lên và xuống sau khi thay đổi tab hoàn tất. Tôi không chắc chắn làm thế nào để thực hiện điều này, vì vậy bất kỳ lời khuyên về khía cạnh này sẽ được đánh giá cao.
Tôi đã thử phiên bản sửa đổi này, giúp loại bỏ thanh trạng thái, nhưng nó cũng giống như điên –
Ngoài ra, tôi vừa nhận ra rằng điều này có thể sẽ gây ra các ứng dụng bị lỗi nếu đoạn đã được tải xuống khỏi bộ nhớ do một trang vuốt hoặc nếu nó đã từng bị phá hủy và tái tạo, chẳng hạn như từ một sự thay đổi định hướng. Bạn sẽ cần phải lấy một tham chiếu đến đoạn bằng cách sử dụng findFragmentById(), vì tham chiếu cũ sẽ không hợp lệ –
'mActionBar' là gì? –