Позволяет ли Руководство по разработке приложений для Android отключить Меню по умолчанию и кнопку "Назад" для определенного приложения? - PullRequest
1 голос
/ 14 декабря 2011

В моем приложении есть несколько кнопок, которые расположены очень близко к кнопке возврата по умолчанию для этого устройства и к кнопке меню. Таким образом, у меня возникли проблемы при нажатии кнопки «Мои приложения», расположенной рядом с меню и кнопкой «Назад».

Таким образом, для этой цели приложения я хочу отключить кнопки «Назад» и «Меню» по умолчанию.

Так позволяет ли Рекомендация по разработке приложений для Android, если мы хотим отключить кнопки «Назад» и «Меню» во время определенного приложения? Если да, то как это возможно?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 14 декабря 2011

Так разрешено ли в Руководстве по разработке приложений для Android, если мы хотим отключить кнопку "Назад" и кнопку меню во время перкулярного приложения?

Руководство по программированию для любой ОС (Windows, Mac, iOS, Android и т. Д.): не нарушайте поведение по умолчанию .

Пользователь будет ожидать, что ваше приложение поддерживает поведение по умолчанию устройства, которое он / она использует, и в большинстве случаев покупает устройство по той же причине: он / она пользуется поведением по умолчанию. Если бы он / она хотел другого типа взаимодействия с пользователем, он / она купил бы другое устройство.

В моем приложении есть несколько кнопок, которые расположены очень близко к кнопке возврата устройства по умолчанию и кнопке меню

Пока ваша кнопка находится на экране, я не вижу, как она может стать проблемой. Однако, если это каким-то образом является проблемой, лучшее решение, чем переопределение поведения по умолчанию, состоит в том, чтобы переместить или увеличить ваши кнопки, чтобы пользователю было легче нажимать их.

Если да, то как это возможно?

Да, это можно сделать.

Чтобы отключить кнопку возврата, просто переопределите onBackPressed() в любом случае Activity, когда возникает проблема, и оставьте ее реализацию пустой:

public void onBackPressed() {
   //Do nothing
}

Кнопка меню будет проблемой только в том случае, если вы надуете меню из вашего Activity. Стандартным поведением является то, что ничего не происходит, когда вы нажимаете кнопку меню, если вы не говорите своему Activity что-то сделать.

1 голос
/ 14 декабря 2011

Иногда вам может понадобиться переопределить поведение по умолчанию, например, если вы используете представления и пользователь ожидает обратной передачи для перехода между представлениями. В других случаях что-то другое, все зависит от приложения. Я бы порекомендовал подумать, стоит ли переопределять поведение по умолчанию или нет.

Вот еще один пример, который можно использовать для всех кнопок:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && (isSomething)) {
        something();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
...