0

我正在尝试在我的一个片段中应用沉浸式模式,该片段由 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个问题:

  1. 即使我将其专门应用于私有视图,它如何影响其他视图?
  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);
  }
4

0 回答 0