【问题标题】:close a opened slidingdrawer when touching outside of the slidingdrawer (fragment)触摸滑动抽屉(片段)外部时关闭打开的滑动抽屉
【发布时间】:2013-01-04 20:32:15
【问题描述】:

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

        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);
            }
        });

我怎样才能做到这一点??

【问题讨论】:

    标签: android android-fragments slidingdrawer


    【解决方案1】:

    我不确定您是如何实现滑动抽屉的,但您可以执行此操作,类似于通过触摸外部来关闭键盘,如下所示:

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

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

    另外,删除“if(!(view instanceof EditText))”检查。

    【讨论】:

      猜你喜欢
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多