Редакторы: Александра Озкан, Настасья Тулаева
Барабан, wheel picker. Элемент графического интерфейса, предназначенный для выбора одного из нескольких взаимоисключающих значений. Элемент изображается как цилиндр, на боку которого нанесены значения. Пользователь выбирает значение, подкручивая его так, чтобы нужное значение оказалось в центре:
Редакторы: Александра Озкан, Настасья Тулаева
Барабан логически и синтаксически тождественен радиогруппе и выпадающему списку, поэтому к его тексту предъявляются те же требования. Для барабана ожидаемо быть как элементом формы, так и мгновенного действия.
В барабане перечень значений двигается под статичным указателем, что обратно привычному поведению списков и меню, где сам указатель ставится на выбранное значение. Поэтому важно, чтобы барабан было легко узнать и его поведение было ожидаемым.
Узнаваемость барабана обеспечивают через линейную и тональную перспективу (оптическое искажение и забледнение удалённых частей), центровку значений и изображение «окошка». Иногда вместо окошка рисуют курсор, что снижает узнаваемость:
Составной барабан имеет независимо вращающиеся цилиндры:
Барабан предполагает непосредственное взаимодействие, поэтому уместнее в интерфейсе, управляемом пальцем. Чтобы передать ощущение физического вращения и инерции, в барабане реализуют мгновенную, непрерывную и физичную обратную связь. После касания барабан продолжает движение с замедлением, как при инерционной прокрутке, но так, чтобы остановиться на конкретном значении. Если пользователь задержит барабан между значениями, то он подкрутится после отпускания. При простом нажатии на одно из значений барабан также подкручивается так, чтобы это значение стало выбранным.
Чем меньше строк барабана видно, тем важнее, чтобы их перечень был предсказуемым и образовывал последовательность (номера по порядку, страны по алфавиту, дни недели, размеры одежды и под.).
Чем крупнее барабан, тем проще им управлять. Чем больше строк барабана видно, тем проще понять и сделать выбор. Но большой барабан нерационально расходует место на экране, а в крайних положениях значительная часть барабана пустует, что снижает информативность. Также барабан обычно управляется жестами прокрутки, поэтому на прокручиваемых экранах возникает конфликт; пользователь может получить не то, чего ожидает. Чем больше площадь барабана, тем острее и этот конфликт.
Чтобы решить проблему большого барабана, его помещают в собственную непрокручиваемую часть экрана. В основной части показывают однострочное поле с выбранным значением, а при фокусе уже отображают барабан на месте экранной клавиатуры или в попапе. Если барабан размещается на месте клавиатуры, то синтаксическая связь с подписью и остальной формой теряется, что следует учитывать при редактуре. Если при фокусе поля барабан разворачивать под полем в той же прокручиваемой части экрана, решается проблема с местом, но не с прокруткой.
Раскрытие барабана при фокусе поля ещё сильнее сближает барабан с выпадающим списком, где перечень значений изначально скрыт. Барабан может даже не быть самостоятельным элементом, а лишь выступать способом реализации выпадающего списка на устройствах, управляемых пальцем. Однако расположенные рядом выпадающие списки в таком случае будут вызывать каждый свой барабан, а не один составной.
В интерфейсе, управляемом мышью, барабан может вращаться не только жестом прокрутки, но и жестом перетаскивания. Жест сложен для многих пользователей, поэтому не стоит его делать единственным способом управления. Если поддерживать сразу оба жеста, элемент станет субъективно менее надёжным (слишком легко сдвинуть). Лучше заменить барабан выпадающим списком или числовым полем ввода (если используется для выбора числа из последовательности).
Уважаемые советчики! Что бы вы исправили или дополнили?