Есть несколько способов решить вашу проблему. В вашем случае проще всего использовать MainScreen # setStatus , который устанавливает содержимое раздела состояния этого экрана.
Вместо непосредственного добавления LabelField
добавьте их следующим образом:
VerticalFieldManager vfm = new VerticalFieldManager();
vfm.add(lf);
vfm.add(lf2);
setStatus(vfm);
РЕДАКТИРОВАТЬ: Альтернативным решением будет размещение и размещение дочернего поля самостоятельно. Для этого вы можете переопределить sublayout()
PlayVideoScreen или ввести другой менеджер (VerticalFieldManager
), добавить в него все поля (видео и метки) и переопределить его метод sublayout()
.
Ниже приведен ваш код с вышеупомянутыми модификациями
public PlayVideoScreen() {
super(NO_VERTICAL_SCROLL);
// ms.setTitle(new LabelField("Let's play some video..."));
final LabelField lf = new LabelField("Video Play");
try {
// Create a new Player pointing to the video file.
// This can use any valid URL.
player = javax.microedition.media.Manager
.createPlayer("file:///SDCard/BlackBerry/videos/sample.avi");
player.realize();
// Create a new VideoControl.
videoControl = (VideoControl) player.getControl("VideoControl");
// Initialize the video mode using a Field.
final Field videoField = (Field) videoControl.initDisplayMode(
VideoControl.USE_GUI_PRIMITIVE,
"net.rim.device.api.ui.Field");
VolumeControl volume = (VolumeControl) player
.getControl("VolumeControl");
volume.setLevel(30);
player.start();
// Set the video control to be visible.
// videoControl.setVisible(true);
final LabelField lf2 = new LabelField("How r you?");
VerticalFieldManager vfm = new VerticalFieldManager(NO_VERTICAL_SCROLL) {
protected void sublayout(int maxWidth, int maxHeight) {
int heightLeft = maxHeight;
// layout the children fields
layoutChild(lf, maxWidth, heightLeft);
heightLeft -= lf.getHeight();
layoutChild(lf2, maxWidth, heightLeft);
heightLeft -= lf2.getHeight();
layoutChild(videoField, maxWidth, heightLeft);
// position the children fields
int yPos = 0;
setPositionChild(videoField, 0, yPos);
yPos += videoField.getHeight();
setPositionChild(lf, 0, yPos);
yPos += lf.getHeight();
setPositionChild(lf2, 0, yPos);
setExtent(maxWidth, maxHeight);
};
};
vfm.add(videoField);
vfm.add(lf);
vfm.add(lf2);
add(vfm);
} catch (MediaException me) {
Dialog.alert(me.toString());
} catch (IOException ioe) {
Dialog.alert(ioe.toString());
}
}