Реализация кнопки назад на bb10
У меня есть одна панель навигации, и я отключил кнопку "Назад" в main.qml, однако я хочу снова отобразить кнопку "Назад" в некоторой части приложения. Как мне это реализовать? вот мой cpp
pane = qml->createRootObject<NavigationPane>();
// Set created root object as the application scene
app->setScene(pane);
qml->setContextProperty("cppObj", this);
}
void ApplicationUI::onLoginClicked() {
// create scene document from buttonclicked.qml asset
// set parent to created document to ensure it exists for the whole application lifetime
QmlDocument *qml = QmlDocument::create("asset:///projects.qml").parent(this);
qml->setContextProperty("cppObj", this);
Page* root = qml->createRootObject<Page>();
pane->push(root);
}
void ApplicationUI::onAddClicked() {
// create scene document from buttonclicked.qml asset
// set parent to created document to ensure it exists for the whole application lifetime
QmlDocument *qml = QmlDocument::create("asset:///addprojects.qml").parent(this);
Page* root = qml->createRootObject<Page>();
pane->push(root);
}
и вот мой главный, где я отключил кнопку назад
NavigationPane {
backButtonsVisible: false }
Как сделать кнопку "Назад" активной в каком-то разделе приложения?
1 ответ
Допустим, у вас есть следующий код:
Стартовая страница
import bb.cascades 1.0
NavigationPane {
id: navPane
Page {
Container {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
layout: DockLayout {
}
Button {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
text: "Next Page"
onClicked: {
var nextPage = page.createObject();
navPane.push(nextPage);
}
}
}
}
attachedObjects: [
ComponentDefinition {
id: page
source: "NextPage.qml"
}
]
}
Следующая Страница:
import bb.cascades 1.0
Page {
// disables backButton (not peeking)
paneProperties: NavigationPaneProperties {
backButton: ActionItem {
enabled: false
}
}
// [0]
Container {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
layout: DockLayout {
}
Button {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
text: "Prev page"
onClicked: {
var page = navPane.pop();
if (page)
page.destroy();
}
}
} // [0]
// hides navigation bar
onCreationCompleted: {
navPane.backButtonsVisible = false;
}
}
Тогда вы можете полностью отключить backButton
с этим кодом в NextPage.qml
onCreationCompleted: {
navPane.backButtonsVisible = false;
}
В качестве альтернативы, если вы хотите, чтобы панель навигации была видимой, а кнопка "Назад" была отключена, используйте следующее в той же NextPage.qml
файл:
paneProperties: NavigationPaneProperties {
backButton: ActionItem {
enabled: false
}
}
Также не забывайте о peekEnabled
имущество. Используя функцию быстрого просмотра BB10, пользователь может перемещаться между страницами одного и того же человека, перемещая палец, не касаясь каких-либо кнопок на экране.
Это можно сделать аналогичным образом:
onCreationCompleted: {
navPane.peekEnabled = false;
}
Надеюсь, поможет.