2016-05-03 8 views
0

Sencha ExtJS 6の最新のツールキットを使用して簡単なIMプログラムを作成したいと考えています。会話パネルでは、送受信されたメッセージごとに新しいパネルを動的に追加します。送信されたメッセージは右側に整列され、受信されたメッセージは(Whatsappの会話のように)左に揃えられるべきです。WhatsAppの会話に似たレイアウト

私は "VBOX"レイアウトを試しましたが、すべてのメッセージにアライメント(左または右)を適用します。 「Ext.layout.float」と呼ばれるレイアウトがありますが、文書化されていないため、その作業を行うことができませんでした。

希望するレイアウトを取得するにはどうすればよいですか?ここで

ありがとう

+1

送信メッセージと受信メッセージを分けることができる場合は、メッセージを表すパネル(divs)に 'float:left'または' float:right'を使用するためにXTemplateを使用できます。 – qmateub

+0

私は 'vbox 'レイアウトで' float:right'を試みましたが、うまくいきません。パネルは左に揃えられます。私は 'float:right'をパネルのデフォルトレイアウトで使用し、子パネルは周囲の子パネルの文脈から外れます – AhmadWabbi

答えて

1

あなたがの組み合わせを使用することができますフレックス設定のvboxとhboxレイアウト。 https://fiddle.sencha.com/#fiddle/19oo

+0

メッセージパネルの幅をソリューションのコンテナ幅の80%に制限するにはどうすればよいですか? – AhmadWabbi

+0

'width:'80% ''をメッセージパネルに追加するだけです。 – Tyr

1

は、それを達成するためにデータビューとCSSを使用した例である:

Fiddle

Ext.application({ 
    name: 'Fiddle', 

    launch: function() { 
     var store = new Ext.data.Store({ 
      fields: ['text'], 
      data: (function() { 
       var data = [], 
        i; 

       for (i = 0; i < 20; ++i) { 
        data.push({ 
         text: 'Message' + (i + 1) 
        }); 
       } 
       return data; 
      })() 
     }); 

     Ext.Viewport.add({ 
      xtype: 'dataview', 
      store: store, 
      itemTpl: '<div class="clearfix"><div style="float: {[xindex % 2 === 0 ? "left" : "right"]};">{text}</div></div>' 
     }); 
    } 
}); 

CSS:

.clearfix:after { 
    content: " "; 
    display: block; 
    height: 0; 
    clear: both; 
} 
関連する問題