关于com.sothree.slidinguppanel.SlidingUpPanelLayout

New*_*mer 4 android slidingpanelayout

当我使用时SlidingUpPanelLayout,我必须设置两个子布局(主面板和面板).当第二个布局(面板)打开时,我想用a关闭它Button.但我找不到方法.

方法是什么?

Lui*_*eri 12

最后一个版本

如果我理解你的话,你想listener在第二个view被打开的时候实现一个吗?

这样做的方法是这样的:

首先声明SlidingUpPanelLayout:

SlidingUpPanelLayout layout;
Run Code Online (Sandbox Code Playgroud)

然后,初始化它 onCreate()

layout = (SlidingUpPanelLayout) findViewById(R.id.sliding_layout);
Run Code Online (Sandbox Code Playgroud)

之后,如果您愿意,可以通过以下方式设置其子项:

layout.setEnableDragViewTouchEvents(true);  
Run Code Online (Sandbox Code Playgroud)

现在,重要的是这个.将侦听器添加到layout

 layout.setPanelSlideListener(new PanelSlideListener() {

        @Override
        public void onPanelSlide(View panel, float slideOffset) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPanelCollapsed(View panel) {
            // TODO Auto-generated method stub
            //Anything you put here is going to happen if the view is closed
        }

        @Override
        public void onPanelExpanded(View panel) {
            // TODO Auto-generated method stub
            //Anything you put here is going to happen if the view is open
        }

        @Override
        public void onPanelAnchored(View panel) {
            // TODO Auto-generated method stub

        }
    });
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!快乐的编码!

编辑:如果要关闭和/或打开窗格,则类中有两种boolean方法:

layout.collapsePane(true); //to close
layout.expandPane(true); //to open
Run Code Online (Sandbox Code Playgroud)

编辑.当前版本 链接到示例

layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); //to close
layout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED); //to open
Run Code Online (Sandbox Code Playgroud)