Пожалуйста, проверьте приведенный ниже исходный код, в котором я создал класс менеджера.Просто добавьте в диспетчер все, что вы хотите, и используйте его.Измените в соответствии с вашими требованиями.
package mypackage;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.TouchEvent;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
public class SlidingDrawer extends Manager {
final static int STATE_VIEW = 1;
final static int STATE_HIDE = STATE_VIEW+1;
final static int STATE_SLIDE_DOWN = STATE_HIDE+1;
final static int STATE_SLIDE_UP = STATE_SLIDE_DOWN+1;
final static int MAX_NO_OF_STATES = STATE_SLIDE_UP+1;
static int CURRENT_STATE = STATE_VIEW;
int i = 0;
LabelField _lbl_hero;
public SlidingDrawer(long arg0) {
super(arg0);
// TODO Auto-generated constructor stub
init();
}
private void init()
{
_lbl_hero = new LabelField("Hero testing Every thign....");
this.add(_lbl_hero);
}
protected void paint(Graphics graphics) {
// TODO Auto-generated method stub
switch(CURRENT_STATE)
{
case STATE_VIEW:
super.paint(graphics);
break;
case STATE_HIDE:
break;
case STATE_SLIDE_DOWN:
super.paint(graphics);
if(i<this.getHeight())
{
this.getField(0).setPadding(i++, 0, 0, 0);
invalidate();
}
else
{
CURRENT_STATE = STATE_HIDE;
}
break;
case STATE_SLIDE_UP:
super.paint(graphics);
if( i > 0 )
{
this.getField(0).setPadding(i--, 0, 0, 0);
invalidate();
}
else
{
CURRENT_STATE = STATE_VIEW;
}
break;
}
}
public void setState(int state)
{
if(state < MAX_NO_OF_STATES)
{
CURRENT_STATE = state;
}
else
Dialog.alert("Invalid State....");
}
protected boolean touchEvent(TouchEvent message) {
// TODO Auto-generated method stub
if(CURRENT_STATE == STATE_VIEW)
{
i=0;
CURRENT_STATE = STATE_SLIDE_DOWN;
invalidate();
}
else if(CURRENT_STATE == STATE_HIDE)
{
// i = this.getField(0).getContentRect().y;
CURRENT_STATE = STATE_SLIDE_UP;
invalidate();
}
return super.touchEvent(message);
}
protected void sublayout(int maxWidth, int maxHeight) {
// TODO Auto-generated method stub
setExtent(360, 100);//Width and Height of the Childs
}
}
Пожалуйста, измените этот код в соответствии с вашими требованиями и используйте его.