我正在尝试在我的一个片段中应用沉浸式模式,该片段由 viewPager 管理。
我的片段看起来像:
public class MapFragment extends Fragment {
private MapView mMapView;
private GoogleMap googleMap;
private UiSettings mUiSettings;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
mMapView = rootView.findViewById(R.id.mapView);
mMapView.onCreate(savedInstanceState);
if (getArguments() != null) {
latlang.Lat = getArguments().getDouble("loclat");
latlang.Lang = getArguments().getDouble("loclang");
} else {
latlang.Lat = 23.1;
latlang.Lang = 79.9864;
}
rootView.setSystemUiVisibility(SYSTEM_UI_FLAG_IMMERSIVE
| SYSTEM_UI_FLAG_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_LAYOUT_STABLE
| SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| SYSTEM_UI_FLAG_FULLSCREEN
);
...
虽然这可行,但这适用于所有片段(即 viewPager 中的所有选项卡),这不是预期的。所以我有2个问题:
- 即使我将其专门应用于私有视图,它如何影响其他视图?
- 我试图手动清理
onDestroy
方法中的标签,以便其他片段不受影响,这也不起作用。
我在这里做错了什么?
@Override
public void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
showSystemUI();
}
private void showSystemUI() {
View decorView = getActivity().getWindow().getDecorView();
decorView.setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}