android - 禁用DrawerLayout的稀松触摸手势-LMLPHP

我需要禁用稀松布上的触摸手势(红色突出显示的部分)。我只想通过滑动来解开抽屉。

问题在于,当抽屉布局打开时,我需要从红色突出显示部分下方的ListView中选择一个元素,发生的事情是抽屉已关闭,只有在这一点上,我才能从ListView中选择一个元素。

我需要直接从ListView中选择元素,同样在打开抽屉时

最佳答案

您必须像这样创建自定义抽屉

public class CustomDrawer extends DrawerLayout {



    public CustomDrawer(Context context) {
        super(context);

    }

    public CustomDrawer(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    public CustomDrawer(Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if(isDrawerOpen(Gravity.START)){
            if(event.getX() > getChildAt(1).getWidth()){
                return false;
            }
        }
        return super.onInterceptTouchEvent(event);
    }

}


注意:getChildAt(1)应该是您赋予其重力作为“开始”并且宽度决定打开抽屉宽度的孩子。

我希望这可以解决您的问题

关于android - 禁用DrawerLayout的稀松触摸手势,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31718082/

10-09 01:40