Модальный нижний лист показывает панель навигации в полноэкранном режиме - PullRequest
0 голосов
/ 23 марта 2019

Я реализовал фрагмент модального листа в полноэкранном действии. Проблема в том, что когда я показываю фрагмент, появляется панель навигации. Вот мой код для показа фрагмента:

OptionsFragment optionsFragment=OptionsFragment.newInstance();
optionsFragment.show(getSupportFragmentManager(),"options_fragment");

А это фрагмент:

public class OptionsFragment extends BottomSheetDialogFragment {


    public OptionsFragment() {
    }

    public static OptionsFragment newInstance() {
        OptionsFragment fragment = new OptionsFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.options_layout,container,false);
        return view;
    }

}

И, наконец, вот как я скрываю панель инструментов и панель навигации в начале упражнения:

mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

1 Ответ

0 голосов
/ 23 марта 2019

Поскольку BottomSheetFragment создает диалог, он отображается в окне, отличном от окна действия.Таким образом, вам придется применить эти флаги systemUiVisibility и к диалоговому окну.

    public class OptionsFragment extends BottomSheetDialogFragment {

            //other overridden methods

            @Override
            public Dialog onCreateDialog(Bundle savedInstanceState) {
                    Dialog dialog = super.onCreateDialog(savedInstanceState); 

         dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
                    return dialog;
                }
    }

Даже в процессе работы установите флажки systemUiVisibility для вида окна вместо вместо viewview

...