半开时滑动抽屉可点击内容

时间:2014-11-26 12:52:40

标签: android clickable slidingdrawer

我正在寻找在抽屉半封闭时实施具有可点击功能的半封闭滑动抽屉。但是,关闭抽屉后,我发现图形可能已经设置了动画,但按钮的可点击区域保持在相同的位置。我试图在slidingdrawer类中的moveHandle()下的滑块类中实现LayoutParams类,view.layout()和view.offsetTopAndBottom(),但无济于事。这是moveHandle()方法的一小部分:

private void moveHandle(int position) {
    final View handle = mHandle;
    final View content = mContent;

    if (mVertical) {
        if (position == EXPANDED_FULL_OPEN) {
            handle.offsetTopAndBottom(mTopOffset - handle.getTop());
            invalidate();
        } else if (position == COLLAPSED_SEMI_CLOSED) {
            handle.offsetTopAndBottom(mBottomOffset + getBottom()- getTop()-
                    mHandleHeight - mSemiClosedContentSize - handle.getTop());
            invalidate();
        } else {
            final int top = handle.getTop();
            int deltaY = position - top;
            if (position < mTopOffset) {
                deltaY = mTopOffset - top;
            } else if (deltaY > mBottomOffset + getBottom()- getTop()- mHandleHeight - mSemiClosedContentSize - top) {
                deltaY = mBottomOffset + getBottom()- getTop()- mHandleHeight - mSemiClosedContentSize - top;
            }
            handle.offsetTopAndBottom(deltaY);

            final Rect frame = mFrame;
            final Rect region = mInvalidate;

            handle.getHitRect(frame);
            region.set(frame);

            region.union(frame.left, frame.top - deltaY, frame.right, frame.bottom - deltaY);
            region.union(0, frame.bottom - deltaY, getWidth(),
                    frame.bottom - deltaY + mContent.getHeight());

            invalidate(region);
        }

任何人都有解决方案在关闭SlidingDrawer时向下移动可点击按钮的位置?

谢谢。

此致

1 个答案:

答案 0 :(得分:0)

不推荐使用SlidingDrawer,请注意Android Documentation.

  

此类在API级别17中已弃用。

这意味着Google不再支持它,您不应该将其排除在外。

我相信你应该尝试使用不同的实现。您可以查看here选项。