Вы можете избежать полного вызова WaitForDrawerClose и обрабатывать логику самостоятельно.
Просто прослушайте событие OnDrawerStateChanged , чтобы узнать, когда ящик закрыт. Вместо синхронной блокировки в этой точке (которая вызывает вашу проблему), это позволит вам просто выйти из своей процедуры, обновить свой пользовательский интерфейс (отключить кнопки, чтобы предотвратить запуск событий и т. Д.), А затем снова включить все, когда ящик закрывается .
Это немного больше усилий, так как это больше работы, чем однострочный метод, но он дает НАМНОГО больше контроля над тем, как ваше приложение будет реагировать, если пользователь не сделает то, что должен. Вы даже можете попросить пользователей (после определенной задержки) показывать, что им нужно закрыть ящик, сделать больше, чем стандартный звуковой сигнал и т. Д.