Как заменить панель действий всплывающим меню?

Я хочу получить 1 из этих вариантов для моего EditText:

  • Замените панель действий, которая появляется вверху, на всплывающее меню. Что-то вроде этого, например:

введите здесь описание изображения

  • Или сделайте панель действий плавающей и дочерней для моего текущего представления (в некотором роде такой же первый вариант)

мне это нужно, потому что я добавляю свое представление через windowManager.addView(view, Layout_Params); и таким образом у меня возникли проблемы с панелью действий вверху (она отображается пустой)

на самом деле я делаю это, чтобы показать панель действий:

@Override
public ActionMode startActionMode(ActionMode.Callback callback) {
    Activity host = (Activity) this.getContext();    
    return host.getWindow().getDecorView().startActionMode(callback); 
}

но это не работает, вместо этого он показывает мне пустую белую панель действий на остановке :( я думаю, мне нужно создать себе ActionMode, но я не знаю, как это сделать.




Ответы (1)


Ok. Вы можете скрыть панель действий, когда ваш текст редактирования получит фокус. Затем вам нужно показать всплывающее меню, где бы вы ни находились.

EditText t = new EditText(this);
    t.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean b) {
            if(b){
                getSupportActionBar().hide();
                //now show your popup menu at the top position
            }else{
                getSupportActionBar().show();
                //here you dismiss the menu.
            }

        }
    });
person Tushar Monirul    schedule 15.09.2016