Store の各要素のカスタム コンポーネントを使用した作成に関するチュートリアルを読みました。DataView
レコードのフィールドを のコンポーネントにマッピングすることについて書かれていますDataItem
が、私の質問はコンポーネントが に追加される順序を定義する方法DataItem
です。
たとえば、次のような DataItem があります。
Ext.define('demo.view.CottageItem', {
extend: 'Ext.dataview.component.DataItem',
requires: ['Ext.Label', 'Ext.Array', 'Ext.Img'],
xtype: 'listitem',
config: {
layout: {
type: 'hbox',
align: 'center',
pack: 'start',
},
title: {
flex: 1
},
photo: {
width: '140px',
height: '140px'
},
dataMap: {
getTitle: {
setHtml: 'title'
},
getPhoto: {
setSrc: 'photo'
}
},
styleHtmlContent: true
},
applyTitle: function(config) {
return Ext.factory(config, Ext.Label, this.getTitle());
},
updateTitle: function(newTitle, oldTitle) {
if (oldTitle) {
this.remove(oldTitle);
}
if (newTitle) {
this.add(newTitle);
}
},
applyPhoto: function(config) {
return Ext.factory(config, Ext.Img, this.getPhoto());
},
updatePhoto: function(newImage, oldImage) {
if (oldImage) {
this.remove(oldImage);
}
if (newImage) {
this.add(newImage);
}
},
});
レイアウトタイプhbox
なので、写真を先に入れてからタイトルを入れたいです。そのタイトルは写真の右側になります。どうすればこれを達成できますか?
別の質問は、DataItem
ラベルと画像を挿入できる別のコンテナーをこの内に追加する方法はありますか?
更新: 私のレイアウトは次のようになります:
|ラベル(タイトル)| |画像(写真)|
私はそれがこのように見えるようにしたい:
|画像(写真)| |ラベル(タイトル)|