bob sunesson
bob sunesson

Reputation: 43

How can I put a image on center of titlebar in Sencha Touch 2?

I need to put a image on center of titlebar in sencha touch 2 , but I can't! I touch js and CSS but it's impossible.... any idea, please? Thanks!

Upvotes: 3

Views: 3420

Answers (3)

user2297810
user2297810

Reputation: 1

ImageTitleBar class.

Ext.define('myapp.controls.ImageTitleBar', {
    extend: 'Ext.TitleBar',
    alias: 'widget.imageTitleBar',

    requires: [
        'Ext.Img'
    ],

    config: {
        imageSource: ''
    },

    applyInitialItems: function(items) {
        var me = this,
            defaults = me.getDefaults() || {};

        me.initialItems = items;

        me.leftBox = me.add({
            xtype: 'container',
            style: 'position: relative',
            layout: {
                type: 'hbox',
                align: 'center'
            },
            listeners: {
                resize: 'refreshTitlePosition',
                scope: me
            }
        });

        me.spacer = me.add({
            xtype: 'component',
            style: 'position: relative',
            flex: 1,
            listeners: {
                resize: 'refreshTitlePosition',
                scope: me
            }
        });

        me.rightBox = me.add({
            xtype: 'container',
            style: 'position: relative',
            layout: {
                type: 'hbox',
                align: 'center'
            },
            listeners: {
                resize: 'refreshTitlePosition',
                scope: me
            }
        });

        me.titleComponent = me.add({
            xtype: 'container',
            hidden: defaults.hidden,
            centered: true,

            layout: {
                type: 'hbox',
                align: 'middle'
            }
        });

        me.titleImage = me.titleComponent.add({
            xtype: 'img',
            width: 36,
            height: 36
        })

        me.titleLabel = me.titleComponent.add({
            xtype: 'title'
        });

        me.doAdd = me.doBoxAdd;
        me.remove = me.doBoxRemove;
        me.doInsert = me.doBoxInsert;
    },


    updateTitle: function(newTitle) {
        this.titleLabel.setTitle(newTitle);
        this.titleLabel.setHidden(!newTitle);

        if (this.isPainted()) {
            this.refreshTitlePosition();
        }
    },

    updateImageSource: function(newImageSource) {
        this.titleImage.setSrc(newImageSource);
        this.titleImage.setHidden(!newImageSource);

        if (this.isPainted()) {
            this.refreshTitlePosition();
        }
    }
})

Upvotes: 0

manikandan
manikandan

Reputation: 98

try this one it will help for You..

Its very simple... title:'give image tag with location thats all'

Upvotes: 5

Luca
Luca

Reputation: 4273

You can try setTitle('<div class="logo"/>') and

.logo {
    background: url('../images/logo.png')  no-repeat center;
    width:100px; 
    height:40px
}

Upvotes: 3

Related Questions