Таким образом в предыдущем вопросе я пытался использовать Инструментарий UI Ubuntu для вложения PageStack в компоненте Вкладок. Это, казалось, работало, но это имело свои причуды, таким образом, я теперь пробую другую опцию, которая в теории должна иметь тот же эффект согласно документации.
Однако с кодом ниже, я заметил следующее: после открытия page3, если я затем надеваю панель инструментов и касание на Кнопке "Назад", это всегда возвращает меня к начальной Вкладке на Вкладках вместо фактической вкладки, из которой была загружена страница.
Таким образом, page3
загружается из tab2
, но если я открываю страницу, вытяните панель инструментов с нижней части и защищайтесь, я возвращаюсь к tab1
вместо этого.
Как я могу сделать его так, чтобы ответвление Назад возвратило меня tab2
?
import QtQuick 2.0
import Ubuntu.Components 1.1
MainView {
id: mainView
width: units.gu(38)
height: units.gu(50)
PageStack {
id: pageStack
Component.onCompleted: push(tabs)
Tabs {
id: tabs
Tab {
id: tab1
title: "Tab 1"
page: Page {
Label {
anchors.centerIn: parent
text: "Use header to navigate between tabs"
}
}
}
Tab {
id: tab2
title: "Tab 2"
page: Page {
Button {
anchors.centerIn: parent
onClicked: pageStack.push(page3)
text: "Press"
}
}
}
}
Page {
id: page3
visible: false
title: "Page on stack"
Label {
anchors.centerIn: parent
text: "Press back to return to the tabs"
}
}
}
}
Это происходит из-за ошибки, недавно введенной в Инструментарий UI: https://bugs.launchpad.net/ubuntu-ui-toolkit / + ошибка/1316736
, Как только это фиксируется, это еще раз возвратит Вас ранее выбранной вкладке при возвращении к странице Tabs PageStack.
Способ сделать это должно определить пользовательскую кнопку "Назад" на панели инструментов, присвоенной page3
tools
свойство. С этим я могу копировать то, что стандартная Кнопка "Назад" делает с точки зрения возвращения к корню PageStack и затем выбирает который вкладка вернуться к.
ToolbarItems {
back: ToolbarButton {
action: Action {
text: i18n.tr("Back")
iconName: "back"
onTriggered: {
pageStack.pop();
// It'd be neater to use `selectedTab`, but it's read-only
tabs.selectedTabIndex = 1;
}
}
}
// [...]
}