当触摸滑动抽屉的外部(碎片)时,请关闭打开的滑动抽屉



我有一个类扩展碎片。我有一个滑动抽屉,我想做的是,如果滑动抽屉是打开的,那么当用户触摸滑动抽屉外时,它应该自动关闭。手动打开和关闭的代码如下:

        final Button slideButton;
        final SlidingDrawer slidingDrawer;
        slideButton = (Button) view.findViewById(R.id.slideButton);
        slidingDrawer = (SlidingDrawer) view.findViewById(R.id.SlidingDrawer);
        slideButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(slidingDrawer.isOpened())
                    slidingDrawer.animateClose();
                else
                    slidingDrawer.animateOpen();
            }
        });
        slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
            @Override
            public void onDrawerOpened() {
                slideButton.setBackgroundResource(R.drawable.openarrow);
            }
        });
        slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
            @Override
            public void onDrawerClosed() {
                slideButton.setBackgroundResource(R.drawable.closearrow);
            }
        });

我怎么才能做到??

我不确定您是如何实现滑动抽屉的,但是您可以这样做,类似于在外部触摸关闭键盘,像这样:

https://stackoverflow.com/a/11656129/901309

但不是关闭键盘,而是关闭滑动抽屉。你需要向setupUI()方法传递视图(LinearLayout, RelativeLayout等),它包含除了滑动抽屉之外的所有内容。

同时,删除"if(!(view instanceof EditText))" check.

最新更新