Json 如何使移动应用程序屏幕大小敏感

Json 如何使移动应用程序屏幕大小敏感,json,mobile,layout,dojo,Json,Mobile,Layout,Dojo,我想做一个Cordova(Phonegap)应用程序,可以在所有设备上使用。包括电脑屏幕。我希望布局根据一些简单的说明调整面板(视图)的数量和布局。我之所以选择Dojox.app,是因为config.json文件控制应用程序MVC结构的方式 Dojox.app使用控制器处理大小和方向事件。config.json文件包含“控制器”、“视图”和其他元素,用于定义应用程序的MVC结构 //Mandatory,listen App.emit events,implement dojox/app/Cont

我想做一个Cordova(Phonegap)应用程序,可以在所有设备上使用。包括电脑屏幕。我希望布局根据一些简单的说明调整面板(视图)的数量和布局。我之所以选择Dojox.app,是因为config.json文件控制应用程序MVC结构的方式

Dojox.app使用控制器处理大小和方向事件。config.json文件包含“控制器”、“视图”和其他元素,用于定义应用程序的MVC结构

//Mandatory,listen App.emit events,implement dojox/app/Controller
"controllers": [
    //listens to "app-init, app-load"
    "dojox/app/controllers/Load",
    //listens to "app-transition, app-domNode"
    "dojox/app/controllers/Transition",
    //listens to "app-initLayout,app-layoutVIew,app-resize"
    "dojox/app/controllers/Layout"
],
//Mandatory, one or a set of views view1+view2+view3
"defaultView": "home+rightPane",
//Mandatory, Specify Application child views
"views": {
    "home":{
        //Mandatory set template for defaultViews
        "template": "app/views/home/home.html",
        "controller" : "app/views/home/home.js",
        "defaultView": "rightPane",
        /* when transitioning between tabs, use a flip animation by default */
        "defaultTransition": "slide",
        /* the views available to this scene */
        "views": {
            "rightPane":{
                //Mandatory set template for defaultViews
                "template": "app/views/rightPane/right.html",
                "controller" : "app/views/rightPane/right.js",
                "defaultView": "general",
                /* when transitioning between tabs, use a flip animation by default */
                "defaultTransition": "slide",
                /* the views available to this scene */
                "views": {
                    "about":{
                        "template": "app/views/about/about.html",
                        "controller" : "app/views/about/view.js"
                    },
                    "wifi":{
                        "template": "app/views/wifi/wifi.html",
                        "controller" : "app/views/wifi/wifi.js"
                    },
                    "general":{
                        "template": "app/views/general/general.html",
                        "controller" : "app/views/general/general.js"
                    },
                    "picture":{
                        "template": "app/views/picture/picture.html",
                        "controller" : "app/views/picture/picture.js"
                    },
                    "bright":{
                        "template": "app/views/bright/bright.html",
                        "controller" : "app/views/bright/bright.js"
                    }
                }
            }
        }
    }
},
...
我想通过更改
“dojox/app/controllers/Layout”
来创建一个自定义控制器,以允许根据屏幕大小添加和减少视图

Dojo已经有了实验性的
'dojox/mobile/ScreenSizeAware'
模块,但它仅限于两个面板,在MVC环境中无法工作(我还没能做到)

如何在config.json文件中定义视图以及如何创建控制器


在接下来的几天里,我会认真考虑一下。如果您有任何建议,请记在这里。

您应该看看dojox/app/tests/mediaQuery3ColumnApp,它将根据屏幕大小显示1、2或3列。它包括一个使用css处理布局的自定义布局控制器,以及一个试图处理转换时要显示哪些视图的自定义导航控制器。这并不完美,当显示的列发生更改时,视图之间的导航会出现一些问题,但这应该可以帮助您开始。 您可以在此处运行它: 您可以在这里看到代码:

问候,,