Изменение выравнивания (слева, справа и т. Д.) Ручки SlidingDrawer - PullRequest
2 голосов
/ 28 декабря 2011

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

Стандартный Android SlidingDrawer Android(а также многоцелевой вариант Алессандро Крюнолы , который я использую) выравнивает по центру рукоятки.Кто-нибудь реализовал SlidingDrawer, который предлагает возможность выравнивать ручку по правому или левому краю? .. или у кого-нибудь есть советы, как это сделать?

Ответы [ 2 ]

3 голосов
/ 01 января 2012

сработало. В mVertical истинном состоянии метода onLayout(boolean changed, int l, int t, int r, int b) SlidingDrawer (или любого другого варианта SlidingDrawer, который вы используете), вы должны найти следующую строку кода ...

handleLeft = (width - childWidth) / 2;

... который центрирует ручку. Измените это на ...

handleLeft = l;

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

handleLeft = r - handleWidth;

... для выравнивания ручки по правому краю.

Аналогичным образом, если выдвижной ящик установлен для горизонтального скольжения (т. Е. Справа налево или справа налево), в mVertical ложное условие метода onLayout(boolean changed, int l, int t, int r, int b), найдите следующую строку кода ...

handleTop = (height - childHeight) / 2;

... и измените его на ...

handleTop = t;

... чтобы выровнять ручку сверху, или ...

handleTop = b - handleHeight;

... чтобы выровнять ручку снизу. Удачного кодирования!

0 голосов
/ 28 декабря 2011

Предполагается, что вы используете стандартную (вертикальную) ориентацию: если вы хотите переместить ручку выдвижного ящика влево, установите для значения android: layout_marginRight выдвижного ящика какое-то положительное число.Сделайте противоположный android: layout_marginLeft, если вы хотите, чтобы ручка двигалась вправо.Там нет выравнивания вправо / влево как таковой с выдвижным ящиком.Если вы хотите более динамичное выравнивание, вам придется использовать макеты, чтобы получить желаемый эффект.

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