【问题标题】:Changing alignment (left, right etc) of SlidingDrawer handle更改 SlidingDrawer 手柄的对齐方式(左、右等)
【发布时间】:2011-12-27 21:35:45
【问题描述】:

(我已经看到了一些相关的问题,但没有答案,所以如果有人做了类似的事情或者可以为我指出正确的方向......)

标准的 Android SlidingDrawer(以及我正在使用的 Alessandro Crugnola's multi-direction variant)使手柄居中对齐。有没有人实现了一个 SlidingDrawer,它提供了右对齐或左对齐手柄的选项?.. 或者任何人有关于如何去做的任何提示?

【问题讨论】:

    标签: android android-sliding


    【解决方案1】:

    解决了。在mVertical 是SlidingDrawer 的onLayout(boolean changed, int l, int t, int r, int b) 方法的真实条件(或您正在使用的SlidingDrawer 的任何变体)中,您应该找到以下代码行...

    handleLeft = (width - childWidth) / 2;
    

    ... 使手柄居中对齐。将其更改为...

    handleLeft = l;
    

    ...当滑动抽屉设置为垂直滑动(即从下到上或从上到下)时左对齐手柄,或将其更改为...

    handleLeft = r - handleWidth;
    

    ... 右对齐句柄。

    同样,如果滑动抽屉设置为水平滑动(即从右到左或从右到左),在onLayout(boolean changed, int l, int t, int r, int b)方法的mVertical为假条件下,找到下面这行代码...

    handleTop = (height - childHeight) / 2;
    

    ...并将其更改为...

    handleTop = t;
    

    ... 顶部对齐手柄,或...

    handleTop = b - handleHeight;
    

    ... 底部对齐句柄。编码愉快!

    【讨论】:

    • 谢谢!你为我节省了很多时间尝试在屏幕底部对齐处理程序。
    • 是的,当然。我应该将它发送到您网站页脚中列出的电子邮件地址吗?
    【解决方案2】:

    假设您使用默认(垂直)方向: 如果要将抽屉手柄向左移动,请将滑动抽屉的 android:layout_marginRight 值设置为某个正数。如果您希望手柄向右移动,请执行相反的 android:layout_marginLeft。滑动抽屉本身没有右/左对齐。如果您想要更动态的对齐方式,则必须使用布局来获得所需的效果。

    【讨论】:

    • 感谢 Android Addict 的回复。设置边距以将手柄向左或向右推:是直接为不同的屏幕尺寸/密度考虑尺寸正确还是会变得混乱?
    • 如果您使用与密度无关的像素(即 30dp),则非常简单: Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); screenWidth = (int)(d.getWidth());
    • 不高兴。我的句柄(ImageView)在一个滑动抽屉视图中,它既不允许在 xml 布局文件中设置句柄的边距,也不允许以编程方式这样做。如果我尝试将从myHandle.getLayoutParams() 返回的View.LayoutParams 对象转换为ViewGroup.MarginLayoutParams 对象,则会引发异常。我什至尝试了myHandle.setRight(0) 方法,但它被忽略了。看起来我需要进去更改滑动抽屉代码,但我看了看,无法弄清楚把手的位置以及如何根据需要进行更改。欢迎提出建议!..
    • 您需要在 SlidingDrawer 上设置边距,而不是手柄。凭借这一点,手柄将调整到抽屉边距。以下是起始标签的示例:
    • 感谢 Android Addict 的帮助。欣赏它。我想出了一个让它工作的方法。看看我的回答...
    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多