Tôi có một hoạt động đơn giản trong đó nó được lưu trữ một Ngăn Điều hướng. Một trong những mục nhập của nó là một WebView, mà phải mất rất nhiều để tải (nó hiển thị Gmail, để sau tất cả những chuyển hướng khó chịu mất khá nhiều).Làm thế nào để ngăn chặn sự giải trí mảnh khi được chọn từ NavigationDrawer?
Tôi muốn giữ lại đoạn ngay cả khi các lựa chọn khác nhau xảy ra. Tôi nghĩ rằng những giải pháp này có thể hoạt động. Họ không.
1) Không được tái tạo đoạn: ngay cả khi mWebmailFragment thực là không null, onCreateView() được gọi trong mọi trường hợp.
private Fragment mWebmailFragment /*, the others */;
public void selectItem(int position) {
Fragment fragment = null;
switch (position) {
case FRAGMENT_CODE_WEBMAIL:
mWebmailFragment = mWebmailFragment!=null ? mWebmailFragment : new WebmailFragment();
fragment = mWebmailFragment;
break;
// ...
}
2) nếu onCreateView() được gọi, trạng thái đối tượng WebView giữ lại có thể hoạt động. Vâng, nó không: gỡ lỗi Tôi phát hiện ra rằng savedInstanceState là luôn luôn null. Tôi không biết tại sao.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
// Retain instance
setRetainInstance(true);
//....
// SavedState
if (savedInstanceState != null) {
mWebView.restoreState(savedInstanceState);
} else {
// do stuff
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mWebView.saveState(outState);
}
Làm cách nào để thay đổi phân đoạn khi bạn chọn một phân đoạn khác? nếu bạn "thay thế" chúng, có thể thử "show()" và "hide()" thay thế. – Maximosaic
bạn đã bao giờ tìm thấy một giải pháp cho điều này? –
Không ... Tôi đã sử dụng "ẩn tất cả - hiển thị lựa chọn" logic, nhưng vẫn còn khi một sự thay đổi định hướng xảy ra tất cả mọi thứ messes lên. Hiện tại, tôi đã giải quyết việc buộc giao diện người dùng ở chế độ dọc, nhưng bạn có thể hiểu giới hạn của nó là bao nhiêu. – Gianluca