2012-04-11 14 views
0

私は別の質問からこのコードを取りましたが、今はウィンドウ全体を埋めるために4つのボタンを取得しようとしています。私には何の影響もないようです。 'fullscreen:true'オプションは常に無視されるようです。すべての垂直方向のスペースを取るようにレイアウトを調整する必要があることを知っているのは何ですか?理想的には、私はこのソリューションを3x3ボタンレイアウトでも動作させたいと思っています。煎茶タッチCDNを使用しています画面に合わせてボタングリッドのサイズを変更する方法は?

enter image description here

app.js

 
Ext.application({ 

    launch: function() { 
     var view = Ext.create('Ext.Container', { 
//   fullscreen: true, 
      layout: { 
       type: 'vbox', 
       flex: 1 
      }, 
      items: [ 
       { 
        xtype: 'container', 
        layout: 'hbox', 

        items:[ 
         { 
          xtype:'button', 
          height:'50%', 
          text: 'flat button', 
          ui: 'plain', 
          flex: 1, 
          handler:function() { 
           alert('top left') 
          } 
         }, 
         { 
          xtype:'button', 
          height:'50%', 
//       ui: 'plain', 
          flex: 1, 
          handler:function() { 
           alert('top right') 
          } 
         } 
        ] 
       }, 
       { 
        xtype: 'container', 
        layout: 'hbox', 
        items:[ 
         { 
          xtype:'button', 
          height:'50%', 

//       ui: 'plain', 
          flex: 1, 
          handler:function() { 
           alert('bottom left') 
          } 
         }, 
         { 
          xtype:'button', 
//       ui: 'plain', 
          height:'50%', 
          flex: 1, 
          handler:function() { 
           alert('bottom right') 
          } 
         } 
        ] 
       } 
      ] 
     }); 
     Ext.Viewport.add(view); 
    } 
}); 

標準index.htmlを。

答えて

0

私はあなたが必要とするもの(3x3ボタンのレイアウト)に合わせて何かを修正しました。がんばろう! :)

P/S:ソースコードを簡単にキャッチするために、ハンドラ関数を削除しました。

Ext.application({ 

    launch: function() { 
     var view = Ext.create('Ext.Container', { 
      layout: { 
       type: 'vbox', 
      }, 
      items: [ 
       { 
        xtype: 'container', 
        layout: 'hbox', 
        flex: 1, 
        items:[ 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         } 
        ] 
       }, 
       { 
        xtype: 'container', 

        layout: 'hbox', 
        flex: 1, 

        items:[ 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         } 
        ] 
       }, 
       { 
        xtype: 'container', 

        layout: 'hbox', 
        flex: 1, 

        items:[ 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         }, 
         { 
          xtype:'button', 
          ui: 'action', 
          flex: 1, 
         } 
        ] 
       } 
      ] 
     }); 
     Ext.Viewport.add(view); 
    } 
}); 
+0

'height:'が問題を引き起こし、 'flex:1'がvboxから削除され、2つのhboxに配置されたようです。私が逃したいくつかの一般的なルールはありましたか? –

+0

'flex'は、hboxやvbox内の子供のコンポーネントの相対的な幅/高さを調整するためのものです。**最も外側の**コンテナで使用しないでください。 –

0

Thiem Nguyenの答えが必要な場合には機能するかもしれませんが、これは画面上のボタンを引き伸ばすために機能します。

view = Ext.create('Ext.Container', { 
     layout:'hbox', 
     items:[ { 
      xtype: 'container', 
      width:'50%', 
      layout: 'vbox', 
      items:[{ 
       xtype:'button', 
       // ui: 'plain', 
       flex: 1, 
       handler:function(){ 
        alert('top left') 
       } 
      },{ 
       xtype:'button', 
       // ui: 'plain', 
       flex: 1, 
       handler:function(){ 
        alert('top right') 
       } 
      }] 
     },{ 

      xtype: 'container', 
      width:'50%', 
      layout: 'vbox', 
      items:[{ 
       xtype:'button', 
       // ui: 'plain', 
       flex: 1, 
       handler:function(){ 
        alert('bottom left') 
       } 
      },{ 
       xtype:'button', 
       // ui: 'plain', 
       flex: 1, 
       handler:function(){ 
        alert('bottom right') 
       } 
      }] 
     }] 
}); 
+0

各ボックスの 'flex:1'それは「幅:50%」または「高さ:50%」です。あなたに投票しましたが、ティエムが最初だったので、私は彼の答えを受け入れるつもりです。他のSenchaの質問の中の両方の解答を読んで学び、私は他の良い答えをupvoteするようにします。みんなありがとう。 –

+0

はい、フレックスと幅/高さを使用するのは少し冗長です。いいえ、気持ちが悪い。 – fuzzyLikeSheep

関連する問題