当前位置: 首页 > 知识库问答 >
问题:

sencha在按钮的选项卡上显示不同的视图

晁璞
2023-03-14

我在sencha touch 2中创建了一个索引页面,在其中我在容器内创建了一些自定义按钮

Ext.define('ov_app.view.Main', {
extend: 'Ext.Container',
requires:[
    'ov_app.view.Eligibelity',
],
xtype: 'main',
css:[{
            "path": "default-theme.css",
    }],
config:{
    scrollable: true,
    items: [
        {           xtype: 'panel',
                    margin:10,
                    items:[
                        {
                            xtype:'button',
                            margin: '0 0 8 0',
                            cls:"main_navigation",
                            style:'background-color:#000',
                            action: 'push-view',
                        },{
                            xtype:'button',
                            margin: '0 0 8 0',
                            cls:"main_navigation",
                        },{
                            xtype:'button',
                            cls:"main_navigation",
                        }
                    ]
           }]
    }
});

这些按钮看起来像这个

单击橙色按钮后,我想显示一个新视图。

我尝试了ext.Navigation view,但它不是我想要的。我必须在按钮上添加一个事件监听器,还是我必须做一些其他事情请建议

我在controller文件夹main.js中创建了一个新控制器

Ext.define('ov_app.controller.Main', {
extend: 'Ext.app.Controller',
    config:{
        control: {
            'button[action=push-view]': {
                tap: 'pushViewFunction'
            }
        },
    },

pushViewFunction: function() {
    Ext.Viewport.add({
        xtype: 'Eligibelity' 
    });
}
});

还有我的新视图Eligibelity.js代码

`
Ext.define('ov_app.view.Eligibelity', {
    xtype : 'Eligibelity',

    config: {
        layout: 'vbox',
        cls: 'big',

        items: [
            {
                xtype: 'title',
                title: 'Twitter Search'
            }
        ]
    }
    });

还有我的app.js密码

'Ext.loader.set路径({'Ext':'touch/src','ov_app':'app'});

    Ext.application({
        name: 'ov_app',

        requires: [
        'Ext.MessageBox'
    ],

views: ['Main', 'Eligibelity'],
controllers: ['Main'],

launch: function() {
    // Destroy the #appLoadingIndicator element
    Ext.fly('appLoadingIndicator').destroy();

    // Initialize the main view
    Ext.Viewport.add(Ext.create('ov_app.view.Main'));
},

onUpdated: function() {
    Ext.Msg.confirm(
        "Application Update",
        "This application has just successfully been updated to the latest version.     Reload now?",
        function(buttonId) {
            if (buttonId === 'yes') {
                window.location.reload();
            }
        }
    );
}
});

`

共有2个答案

伍成仁
2023-03-14

在按钮上,必须添加如下处理程序:

{
xtype:'button',
cls:"main_navigation",
handler: function() {
        Ext.create( 'Ext.window.Window', {
           title: 'Works',
           height: 300,
           width: 300,
           html: 'Create whatever view you want.'
        } ).show();
    }
}

您想在单击按钮时创建什么视图?

编辑:添加show()以显示窗口。但你可以在那里做任何动作。

贺浩漫
2023-03-14

您可以添加一个action到您的按钮以供参考:

{
    xtype: 'button',
    action: 'push-view'
}

然后,在控制器中,当用户点击按钮时,您可以按下“新建视图”,如下所示:

control: {
   'button[action=push-view]': {
        tap: 'pushViewFunction'
    }
},

pushViewFunction: function() {
     Ext.Viewport.add({
         xtype: 'newView' // This is the xtype of new view you want to push 
     });
}

编辑

你需要把你的控件放在config块中:

config: {    
    control: {
       'button[action=push-view]': {
            tap: 'pushViewFunction'
        }
    }
},

pushViewFunction: function() {
     Ext.Viewport.add({
         xtype: 'newView' // This is the xtype of new view you want to push 
     });
}

编辑2:

您可以使用setActiveItemanimateActiveItem

 pushViewFunction: function() {
    Ext.Viewport.animateActiveItem({xtype: 'Eligibelity'}, {type:'slide', direction: 'left'});
}

以下是基于您所有发布代码的工作演示。

 类似资料:
  • 问题内容: 我有OKNO1和OKNO2,我想严格在OKNO1中显示带有图像的按钮。 此刻,带有图像的按钮将全局显示。我曾经用过cp5.addButton,在那里做过.moveTo(“okno1”); 现在,图像按钮使用OOP / Java。如何解决一个棘手的问题?您可以通过什么方式完成任务。我想再次使用void draw()。 Complete code example: 问题答案: 帮助他人(包

  • 我(目前)有三个按钮 使用这些按钮,我想显示不同的菜单/覆盖。覆盖图如下所示: 这方面的JS是: 我的问题是只有菜单1正在显示。脚本可以正常工作,但是menu2和menu3没有显示。 我想这一定是缺少的东西。也许是a$(this)什么的(对不起我的JS已经不是以前的样子了)。我在中循环,然后从google chrome dev中点击了“Right”按钮(我想,很难说出来)。 预期结果:如果我按下按

  • 以下是我到目前为止的布局: 我尝试通过编程方式向FrameLayout添加一个ImageButton,但这似乎不起作用。

  • 视图与所有其他选项卡栏项目(事件、挂起、浏览、我的个人资料)配合良好,但对于“更多”部分,当推送到相关视图控制器时,选项卡栏视图控制器将显示选项卡栏上方的新底部栏,如图所示。 现在我试图设置底部栏为无,试图隐藏底部栏在属性检查员,没有工作。我想帮助删除这个空白视图视为底部栏,显示在标签栏上方。

  • 此表单在基于函数的视图中显示单选按钮,但在我引入基于类的视图时更改为复选框,有什么解决办法。我希望他们再次显示单选按钮 表单.py models.py 模板 views.py

  • 我在制作这个项目网站的时候,突然想到要制作一个弹出框来显示产品的描述。当我制作弹出式消息框时,它会出现在单击不同的图像时,我看到它会显示不同产品的相同消息,即使在对每种产品给出不同的描述之后也是如此。我不太懂JavaScript,但我想必须在那里添加一些代码。 这里是代码- 这是我从codepen中获取的模板。木卫一。