2013-01-04 2 views
-1

파편을 확장하는 클래스가 있습니다. 나는 내가하고 싶은 slidingdrawer를 가지고있다. slidingdrawer가 열렸을 때 사용자가 slidingdrawer 외부를 터치하면 자동으로 닫혀 야한다. 수동으로 열고 닫기위한 코드는 다음과 같습니다.슬라이딩 닥터 (조각) 바깥 쪽을 만질 때 열린 슬라이딩 닥터 닫음

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

어떻게 할 수 있습니까 ??

답변

3

는 당신이 슬라이딩 서랍을 구현하는 방법을 잘 모르겠어요,하지만 당신은 다음과 같이 외부의 터치 키보드를 닫을 유사한이 작업을 수행 할 수 있습니다

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

그러나 대신을 폐쇄 키보드, 슬라이딩 서랍을 닫으십시오. 슬라이딩 드로어를 제외한 모든 것을 포함하는 View (LinearLayout, RelativeLayout 등) 메소드의 setupUI() 메소드를 전달해야합니다.

또한 if (! (view instanceof EditText)) 체크를 제거하십시오.