Board logo

標題: Android App - Sliding drawer [打印本頁]

作者: admin    時間: 2012-2-6 23:13     標題: Android App - Sliding drawer

SlidingDrawer 隱藏式抽屜 is a container that when dragged or pressed shows/hides its contents.

As the SlidingDrawer displays one content at a time, it must be declared within FrameLayout

the SlidingDrawer has two key properties:
android:handle: specifies the id of the control that acts as the handle.
android:content: specifies the id of the view that acts as content of the SlidingDrawer, most times will be a container.

you can open/close the drawer from the code like this:
if(drawer.isOpened())    {     
      drawer.close();     
  btnToggle.setText("Open");    }   
else    {     
  drawer.open();     
  btnToggle.setText("Close");    }

you can open/close the drawer with animation using these methods instead

drawer.animateClose();
drawer.animateOpen();

or you can handle the open/close operations automatically using toggle method:

drawer.toggle();
drawer.animateToggle();

you can lock/unlock the SlidingDrawer to enable/disable dragging or clicking of the drawer using these methods:
drawer.lock();

drawer.unlock();

Responding to SlidingDrawer Events:

SlidingDrawer has three key callbacks:

drawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {        

@Override   
public void onDrawerOpened() {     
// TODO Auto-generated method stub     
TextView txtStatus=(TextView)findViewById(R.id.txtStatus);     
txtStatus.setText("Opened");     
ImageView view=(ImageView)drawer.getHandle();     
view.setImageResource(R.drawable.tray_handle_selected);         
}   
});                                             

drawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {        
@Override   
public void onDrawerClosed() {     
// TODO Auto-generated method stub     
TextView txtStatus=(TextView)findViewById(R.id.txtStatus);     
txtStatus.setText("Closed");     
ImageView view=(ImageView)drawer.getHandle();     
view.setImageResource(R.drawable.tray_handle_normal);   
}   
});                  

drawer.setOnDrawerScrollListener(new OnDrawerScrollListener() {        
@Override   
public void onScrollStarted() {     
// TODO Auto-generated method stub     
TextView txtStatus=(TextView)findViewById(R.id.txtStatus);     
txtStatus.setText("Scroll start");         
}        

@Override   
public void onScrollEnded() {     
// TODO Auto-generated method stub     
TextView txtStatus=(TextView)findViewById(R.id.txtStatus);     
txtStatus.setText("Scroll end");   
}   
});

Notes:





歡迎光臨 How2Do (http://forum.how2do.com.hk/) Powered by Discuz! 7.2