Как полностью отключить контекстную панель действий в Android? - PullRequest
4 голосов
/ 17 июня 2020

Нет панели инструментов, но отображается контекстная панель действий при выделении текста ниже api v23, следующие коды не работают для отключения / удаления. Как отключить / удалить полностью?

enter image description here

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_read_book);

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE  | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  | View.SYSTEM_UI_FLAG_FULLSCREEN);

    if (getSupportActionBar() != null) {
        getSupportActionBar().setHomeButtonEnabled(false);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
        getSupportActionBar().setDisplayShowCustomEnabled(false);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setHomeButtonEnabled(false);
        getSupportActionBar().removeAllTabs();
        getSupportActionBar().setShowHideAnimationEnabled(false);
        getSupportActionBar().hide();
        getSupportActionBar().collapseActionView();
        getSupportActionBar().closeOptionsMenu();
        getSupportActionBar().setHomeAsUpIndicator(null);
    }
}

My App Theme:

 ... false  ...  

Edit:

Открытие специального меню fragmen при длительном нажатии на мой TextView с CustomSelectionActionModeCallback, и я чтобы вернуть true методом onCreateActionMode, потому что во избежание отмены выбора во время выбора, таким образом (возвращая true) событие не может упасть, но панель действий открывает уровень API 23 и ниже.

mTextViewItem.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        ...
        showMyMenuFragment();
        ...
        return true;
    }
    
    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        menu.clear();
        return false;
    }
    
    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        return false;
    }
    
    @Override
    public void onDestroyActionMode(ActionMode mode) {
    
    }
});

1 Ответ

0 голосов
/ 27 июня 2020

Используйте одну из тем .NoActionBar и установите для атрибута windowActionBar значение false.

Начиная с уровня API 21 панель действий может быть представлена ​​любым виджетом панели инструментов в макете приложения. Приложение может назначить панель инструментов в качестве панели действий для действия, используя метод setSupportActionBar().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...