Я создаю боковое меню для своего приложения в Codename One, используя Toolbar()
.У меня настроены вкладки и код для перехода из одной соответствующей формы в другую, но переходы не являются плавными и не очень привлекательными.В частности, когда я нажимаю на вкладку, заголовок формы, соответствующей этой вкладке, скользит (в то время как заголовок текущей формы смещается влево) - это очень странно и нежелательно.В то же время боковое меню просто исчезает, вместо того, чтобы правильно «закрыться», скользя назад влево.
Я попытался изменить переходы между формами (что произойдет, когда я выберувкладка в боковом меню).В то время как это немного помогло скользящему вопросу о формах, боковое меню все еще резко исчезает.
public void myDay() {
Form display = new Form("My Day");
launchToolbar(display);
display.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 300));
display.show();
}
public void marks() {
Form display = new Form("Marks");
launchToolbar(display);
display.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 300));
display.show();
}
public void start() {
if(current != null){
current.show();
return;
}
Form hi = new Form("Title");
Toolbar tb = hi.getToolbar();
Container topBar = new Container();
topBar.setUIID("TopBar");
tb.addComponentToSideMenu(topBar);
Container signedIn = BorderLayout.east(new Label(""));
signedIn.add(BorderLayout.SOUTH, new Label("Signed in as", "userBar"));
signedIn.setUIID("userBar");
tb.addComponentToSideMenu(signedIn);
Container username = BorderLayout.east(new Label(""));
username.add(BorderLayout.SOUTH, new Label("tristansharma", "userBarName"));
username.setUIID("userBarName");
tb.addComponentToSideMenu(username);
tb.addMaterialCommandToSideMenu(" My Day", FontImage.MATERIAL_SCHEDULE, e -> {
hi.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 1));
myDay();
hi.showBack();
});
tb.addMaterialCommandToSideMenu(" Marks", FontImage.MATERIAL_ASSESSMENT, e -> {
hi.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 1));
marks();
hi.showBack();
});
}
public Toolbar launchToolbar(Form a) {
Toolbar inp = a.getToolbar();
Container topBar = new Container();
topBar.setUIID("TopBar");
inp.addComponentToSideMenu(topBar);
Container signedIn = BorderLayout.east(new Label(""));
signedIn.add(BorderLayout.SOUTH, new Label("Signed in as", "userBar"));
signedIn.setUIID("userBar");
inp.addComponentToSideMenu(signedIn);
Container username = BorderLayout.east(new Label(""));
username.add(BorderLayout.SOUTH, new Label("tristansharma", "userBarName"));
username.setUIID("userBarName");
inp.addComponentToSideMenu(username);
inp.addMaterialCommandToSideMenu(" My Day", FontImage.MATERIAL_SCHEDULE, e -> {
a.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 1));
myDay();
a.showBack(); });
inp.addMaterialCommandToSideMenu(" Marks", FontImage.MATERIAL_ASSESSMENT, e -> {
a.setTransitionOutAnimator(CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, false, 1));
marks();
a.showBack(); }); ;
return inp;
}
По сути, я пытаюсь правильно закрыть панель инструментов, закрыв ее, а не просто исчезая.Ниже приведены ссылки на другие ресурсы, которые я пытался проконсультировать, но до сих пор не могу найти решение.
Сделать слайд бокового меню НАД формы в кодовое имя один
Форма кодовое имя добавляет другой заголовок вместо обновления при обновлении панели инструментов
Codename One: странная анимация панели инструментов при изменении формы