我尝试在sencha touch中创建导航。我遇到了一个我无法理解的情况。当我按下“后退”按钮时,请帮助我找出事件侦听器不工作的原因。
我已经创建了一个主容器,其中包含一个单独的位置,用于动态添加面板。
后退和下一步按钮位于主视图的另一个面板中。
当我的添加功能启动时,它会添加面板的功能,并在一次内正常工作。但当我导航通过后退按钮的功能是不工作即piccs点击,cvcs点击;其中一个图像被改变。还有其他一些功能
请帮助我了解问题和解决方案。
我猜是因为我正在创建一个面板,当我使用xtype点击back按钮时:“newPanel”会创建一个全新的面板,并且函数不会应用于该面板。请帮我解决这个问题。
下面是密码
var current = 1;
var myPanel = new Array("panelOne", "panelOneP", "panelTwoP", "panelThreeP", "panelFourP", "panelFiveP", "panelOneC", "panelTwoC", "panelThreeC", "panelFourCVC", "panelFiveC", "panelSixCGraph", "panelSixPGraph");
Ext.define("myApp.controller.MainController", {
extend: "Ext.app.Controller",
config: {
refs: {
main: '#main',
backButton: '#backButton',
nextButton: '#nextButton',
panelArea: '#panelArea', //this panel is in main view along with some other panels, among the other panels there is a panel which contains the back and next buttons
panelOne: '#panelOne', // these are the views extending Ext.Panel
panelOneP: '#panelOneP',
panelTwoP '#panelTwoP',
panelThreeP: '#panelThreeP',
panelFourP: '#panelFourP',
panelFiveP: '#panelFiveP',
panelSixPGraph: '#panelSixPGraph',
panelOneC: '#panelOneC',
panelTwoC: '#panelTwoC',
panelThreeC: '#panelThreeC',
panelFourC: '#panelFourC',
panelFiveC: '#panelFiveC',
panelSixCGraph: '#panelSixCGraph',
piccs: '#piccs', // these two are images in the panelOne
cVCs: '#CVCs',
},
control: {
cVCs: {
tap: 'cvcsClicked'
},
piccs: {
tap: 'piccsClicked'
},
backButton: {
tap: 'navigateBack'
},
nextButton: {
tap: 'navigateNext'
},
},
},
navigateBack: function () {
current = current - 1;
this.addPanel(myPanel[current]);
},
navigateNext: function () {
current = current + 1;
this.addPanel(myPanel[current]);
},
addPanel: function (newPanel) {
this.getPanelArea().removeAt(0);
}
var myNewPanel = Ext.create('Ext.Panel', {
items: [{
xtype: "" + newPanel + "" // every view is given ID exactly as in the array
}]
});
this.getPanelArea().add(myNewPanel);
},
piccsClicked: function () {
var current = this.getPiccs().getSrc();
if (current == 'resources/images/checkBoxUnchecked.jpg') {
this.getPiccs().setSrc('resources/images/checkBoxChecked.jpg');
} else {
this.getPiccs().setSrc('resources/images/checkBoxUnchecked.jpg');
}
},
cvcsClicked: function () {
var current = this.getCVCs().getSrc();
if (current == 'resources/images/checkBoxUnchecked.jpg') {
this.getCVCs().setSrc('resources/images/checkBoxChecked.jpg');
} else {
this.getCVCs().setSrc('resources/images/checkBoxUnchecked.jpg');
}
},
});
小心你放逗号的地方,检查是否所有东西都用括号正确关闭了。
基本上,你不应该在结束括号前放入任何,
或]
,就像你在结束时那样:
},
});
或在“#CVCs”之后,
cVCs: '#CVCs',
},
另外,您确定要将}、
放在this.getPanelArea().add(myNewPanel)之后吗
?
this.getPanelArea().add(myNewPanel);
},
这将关闭您的控制器定义,但您还有两个函数
piccs点击
和cvcs点击
,它们应该放在关闭},
之前。
此外,关闭控制器应为
})
},
(可能意外地留在那里)。
var current = 1;
var myPanel = new Array("panelOne", "panelOneP", "panelTwoP", "panelThreeP", "panelFourP", "panelFiveP", "panelOneC", "panelTwoC", "panelThreeC", "panelFourCVC", "panelFiveC", "panelSixCGraph", "panelSixPGraph");
Ext.define("myApp.controller.MainController", {
extend: "Ext.app.Controller",
config: {
refs: {
main: '#main',
backButton: '#backButton',
nextButton: '#nextButton',
panelArea: '#panelArea', //this panel is in main view along with some other panels, among the other panels there is a panel which contains the back and next buttons
panelOne: '#panelOne', // these are the views extending Ext.Panel
panelOneP: '#panelOneP',
panelTwoP '#panelTwoP',
panelThreeP: '#panelThreeP',
panelFourP: '#panelFourP',
panelFiveP: '#panelFiveP',
panelSixPGraph: '#panelSixPGraph',
panelOneC: '#panelOneC',
panelTwoC: '#panelTwoC',
panelThreeC: '#panelThreeC',
panelFourC: '#panelFourC',
panelFiveC: '#panelFiveC',
panelSixCGraph: '#panelSixCGraph',
piccs: '#piccs', // these two are images in the panelOne
cVCs: '#CVCs'
},
control: {
cVCs: {
tap: 'cvcsClicked'
},
piccs: {
tap: 'piccsClicked'
},
backButton: {
tap: 'navigateBack'
},
nextButton: {
tap: 'navigateNext'
}
}
},
navigateBack: function () {
current = current - 1;
this.addPanel(myPanel[current]);
},
navigateNext: function () {
current = current + 1;
this.addPanel(myPanel[current]);
},
addPanel: function (newPanel) {
this.getPanelArea().removeAt(0);
},
var myNewPanel = Ext.create('Ext.Panel', {
items: [{
xtype: "" + newPanel + "" // every view is given ID exactly as in the array
}]
});
this.getPanelArea().add(myNewPanel);
piccsClicked: function () {
var current = this.getPiccs().getSrc();
if (current == 'resources/images/checkBoxUnchecked.jpg') {
this.getPiccs().setSrc('resources/images/checkBoxChecked.jpg');
} else {
this.getPiccs().setSrc('resources/images/checkBoxUnchecked.jpg');
}
},
cvcsClicked: function () {
var current = this.getCVCs().getSrc();
if (current == 'resources/images/checkBoxUnchecked.jpg') {
this.getCVCs().setSrc('resources/images/checkBoxChecked.jpg');
} else {
this.getCVCs().setSrc('resources/images/checkBoxUnchecked.jpg');
}
}
});
我也有同样的问题。我这样做解决了这个问题:
>
backToNav: 'myNavXtypeName button[text=Back]'
在同一个控制器中,将ref链接到控件
:
backToNav: {
tap: 'backToNav'
}
最后创建实现导航视图的pop功能的控制器方法。
backToNav: function() {
Ext.getCmp('myNavXtypeName').pop()
}
完成。在此处阅读有关参照和控件的更多信息
我开始创建一个应用程序,它使用一个活动(导航抽屉)和许多片段。但我无法使用工具栏上的“后退”按钮从片段中导航回来。硬件后退按钮工作正常。我知道我需要覆盖选项ItemSelected,捕捉android。R、 id.home,检查后堆栈中是否有内容,然后弹出它。在更改片段后,“burger”按钮变为“back arrow”,但当我单击它时,选项ItemSelected将打开NavigationDra
在我的应用程序中,我使用动作栏和导航抽屉。操作栏中有一个按钮用于打开和关闭导航抽屉。我想把它的颜色改成红色。我该怎么做?
我想知道如何使用导航控制器正确处理系统后退按钮动作。在我的应用程序中,我有两个片段(例如,fragment1和fragment2),我在fragment1中有一个操作,目标是fragment2。除了一件事之外,所有的工作都很好--当用户按下fragment2中的system back按钮时,我希望显示一个对话框(例如使用DialogFragment)来确认退出。实施这种行为的最佳方式是什么?如果我
问题内容: 我正在使用react native导航(react- navigation)StackNavigator。它从应用程序整个生命周期的“登录”页面开始。我不想使用返回选项,返回“登录”屏幕。有谁知道登录屏幕后如何将其隐藏在屏幕上?顺便说一句,我也使用以下命令将其隐藏在登录屏幕中: 问题答案: 1)要使后退按钮在react-navigation v2或更高版本中消失: 2)如果您要清理导航
在本地MacOS应用程序的触摸栏中创建一个按钮 进程: 主进程 new TouchBarButton(options) 实验功能 用途:创建新按钮 options Object label String (可选) - 按钮文本 backgroundColor String (可选) - 十六进制的按钮背景颜色如 #ABCDEF icon NativeImage (可选) - 按钮图标 iconP
我正在使用android中的导航组件,最初我在其中设置了6个片段。问题是我添加了一个新片段(ProfileFragment)。 当我从开始目标导航到此新片段时,按下本机后退按钮不会弹出当前片段。相反,它只是停留在我所在的片段上——后退按钮什么都不做。 这是我的navigation.xml: 在上图中,突出显示的箭头(左侧)是我遇到问题的导航操作。 在我的片段代码中,我导航如下: 其他导航操作正在按