полоса прокрутки: исходный код или логическая схема - PullRequest
0 голосов
/ 20 сентября 2011

Я пишу полосу прокрутки практически с нуля. Было бы полезно увидеть читаемый исходный код или довольно подробный план того, как он должен выглядеть и влиять на связанную область, которую он прокручивает, например, в различных сценариях. Что, если пользователь перетаскивает «ошибку», как далеко должна прокручиваться соответствующая область, если пользователь нажимает на другую часть области прокрутки, как долго должна быть «ошибка» с учетом процента видимой на экране связанной области.

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Эмпирическое правило (каламбур, я полагаю ...) заключается в том, что «большой палец» (я думаю, что вы называете «ошибкой») пропорционален количеству данных, которые можно непосредственно просмотреть.То есть, если у вас есть двухстраничный документ и вы видите полностью одну страницу, большой палец будет на 50% больше всей области, поскольку вы просматриваете 50% всего документа.Должен быть установлен нижний предел, чтобы большой палец не исчезал (т. Е. Даже если вы просматриваете только 0,1% документа, большой палец должен иметь высоту не менее 10 пикселей).

Если щелкнуть «впадину» (область, в которой скользит большой палец), полоса прокрутки должна перемещаться вверх или вниз на один экран за раз.Или одна страница.

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

1 голос
/ 20 сентября 2011

Посмотрите на GtkRange в GTK +:

высота ползунка - это доля (page_size / total_adjustment_range), умноженная на высоту впадины в пикселях

Inдругими словами, если x % документа видно в окне просмотра, ползунок займет x % от впадины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...