1page.title=Подтверждение и уведомление 2page.tags=dialog,toast,notification 3@jd:body 4 5<p>В некоторых ситуациях, когда пользователь выполняет действие в вашем приложении, полезно в текстовом виде <em>запросить подтверждение</em> этого действия или <em>отобразить уведомление</em> о его выполнении.</p> 6 7<div class="cols"> 8 <div class="col-6"> 9 <img src="{@docRoot}design/media/confirm_ack_confirming.png"> 10 <p><strong>Подтверждение</strong> — это просьба к пользователю подтвердить, что он действительно хочет, чтобы запущенное действие было выполнено. Иногда подтверждение отображается вместе с предупреждением или важной информацией относительно действия, которую пользователь должен принять во внимание.</p> 11 </div> 12 <div class="col-6"> 13 <img src="{@docRoot}design/media/confirm_ack_acknowledge.png"> 14 <p><strong>Уведомление</strong> отображает текст, позволяющий пользователю узнать о завершении действия. Это устраняет неопределенность в отношении неявных операций, которые выполняет система. В некоторых случаях уведомления отображаются вместе с возможностью отменить действие.</p> 15 </div> 16</div> 17 18<p>Взаимодействие с пользователями такими способами позволяет снять неопределенность относительно событий, которые произошли или произойдут. Кроме того, подтверждение или уведомление позволяют удержать пользователя от ошибок, о которых он, возможно, будет сожалеть.</p> 19 20<h2>Ситуации, в которых следует запрашивать подтверждение и/или отображать уведомление</h2> 21<p>Не все действия требуют подтверждения или уведомления. При принятии решений во время разработки приложений руководствуйтесь следующей блок-схемой.</p> 22<img src="{@docRoot}design/media/confirm_ack_flowchart.png"> 23 24<h2>Подтверждение</h2> 25<div class="cols"> 26 <div class="col-6"> 27 <h4>Пример: Google Play Books</h4> 28 <img src="{@docRoot}design/media/confirm_ack_ex_books.png"> 29 <p>В этом примере пользователь пытается удалить книгу из своей библиотеки Google Play. Для подтверждения этого действия отображается <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">оповещение</a>, поскольку пользователь должен понимать, что книга больше не будет доступна ни с одного устройства.</p> 30 <p>При разработке диалогового окна подтверждения следует создать осмысленный заголовок, отражающий запрошенное действие.</p> 31 </div> 32 <div class="col-7"> 33 <h4>Пример: Android Beam</h4> 34 <img src="{@docRoot}design/media/confirm_ack_ex_beam.png"> 35 <p>Подтверждения не обязательно должны быть представлены в виде оповещения с двумя кнопками. После старта Android Beam пользователю предлагается прикоснуться к содержимому (в данном примере, к фотографии) для обмена данными. Если пользователь решит не продолжать, он просто ничего не предпримет.</p> 36 </div> 37</div> 38 39<h2>Уведомление</h2> 40<div class="cols"> 41 <div class="col-6"> 42 <h4>Пример: сохранение оставленного черновика Gmail</h4> 43 <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png"> 44 <p>В этом примере, если пользователь переходит назад или вверх от экрана составления писем Gmail (возможно, вследствие неожиданного события), текущий черновик автоматически сохраняется. Всплывающее уведомление обращает внимание пользователя на этот факт. Через несколько секунд оно исчезает.</p> 45 <p>Отмена здесь неуместна, поскольку сохранение было инициировано приложением, а не пользователем. Кроме того, пользователь сможет без труда вернуться к написанию сообщения, перейдя к списку черновиков.</p> 46 47 </div> 48 <div class="col-6"> 49 <h4>Пример: удаление переписки Gmail</h4> 50 <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png"> 51 <p>После того, как пользователь удалит переписку из Gmail, появляется уведомление с возможностью отмены действия. Оно остается, пока пользователь не предпримет постороннее действие, например, прокрутит список писем.</p> 52 </div> 53</div> 54 55<h2>Отсутствие подтверждения или уведомления</h2> 56<div class="cols"> 57 <div class="col-6"> 58 <h4>Пример: +1</h4> 59 <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png"> 60 <p><strong>Подтверждение не требуется</strong>. Если пользователь нажал +1 случайно, это не имеет большого значения. Он может просто нажать кнопку еще раз, чтобы отменить действие.</p> 61 <p><strong>Уведомление не требуется</strong>. Пользователь увидит, что кнопка +1 поменяла состояние и стала красной. Это достаточно ясный сигнал.</p> 62 </div> 63 <div class="col-7"> 64 <h4>Пример: удаление приложения с главного экрана</h4> 65 <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png"> 66 <p><strong>Подтверждение не требуется</strong>. Это преднамеренное действие: пользователь должен перетащить элемент на относительно крупную отдельно расположенную цель. Поэтому случайности здесь практически невероятны. К тому же, если пользователь пожалеет о своем решении, ему потребуется всего несколько секунд, чтобы вернуть приложение.</p> 67 <p><strong>Уведомление не требуется</strong>. Пользователь будет знать, что приложение удалено с главного экрана, потому что сам заставил его исчезнуть в результате перетаскивания.</p> 68 69 </div> 70</div> 71