(我已经看到了一些相关的问题,但没有答案,所以把这个放在奇怪的机会上有人做了类似的事情或者可以指出我正确的方向......)
标准的 Android SlidingDrawer(以及我正在使用的 Alessandro Crugnola 的多向变体)中心对齐手柄。有没有人实现了一个 SlidingDrawer ,它提供了右对齐或左对齐手柄的选项?..或者任何人有关于如何去做的任何提示?
(我已经看到了一些相关的问题,但没有答案,所以把这个放在奇怪的机会上有人做了类似的事情或者可以指出我正确的方向......)
标准的 Android SlidingDrawer(以及我正在使用的 Alessandro Crugnola 的多向变体)中心对齐手柄。有没有人实现了一个 SlidingDrawer ,它提供了右对齐或左对齐手柄的选项?..或者任何人有关于如何去做的任何提示?
解决了。在SlidingDrawer 方法(或您正在使用的任何 SlidingDrawer 变体)的mVertical
真实条件下,您应该找到以下代码行...onLayout(boolean changed, int l, int t, int r, int b)
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;
... 底部对齐手柄。快乐编码!
假设您使用默认(垂直)方向:如果要将抽屉手柄向左移动,请将滑动抽屉的 android:layout_marginRight 值设置为某个正数。如果您希望手柄向右移动,请执行相反的 android:layout_marginLeft。滑动抽屉本身没有右/左对齐。如果您想要更动态的对齐方式,则必须使用布局来获得所需的效果。