Titanium - дизайн заголовка с тремя элементами управления в представлении
Я хочу создать заголовок приложения с 3 элементами управления.
- Левая кнопка меню
- Название экрана
- Правая кнопка меню
Я пытался добиться этого, вот мой пример кода.
var win = Ti.UI.createWindow({
navBarHidden : true,
orientationModes : [Ti.UI.PORTRAIT]
});
var bb1 = Ti.UI.createView({
top : 0,
height : 40,
left : 0,
width : Titanium.Platform.displayCaps.platformWidth,
backgroundColor : '#35a63c'
});
var TopbarChieldContainer = Ti.UI.createView({
layout : 'horizontal',
width : Titanium.Platform.displayCaps.platformWidth,
});
var TopbarLeftView = Ti.UI.createView({
width : "7%",
left : 5,
});
var TopbarRightView = Ti.UI.createView({
width : "7%",
right : 5
});
var leftImage_topbar = Ti.UI.createImageView({
image : "../../images/SideMenuIcon.png",
});
TopbarLeftView.add(leftImage_topbar);
var screenTitle_topbar = Titanium.UI.createLabel({
text : ScreenTitle,
font : {
fontSize : 14,
},
textAlign : Ti.UI.TEXT_ALIGNMENT_CENTER,
color : '#FFF',
width : "52%"
});
TopbarRightView.add(RightButton);
TopbarChieldContainer.add(TopbarLeftView);
TopbarChieldContainer.add(screenTitle_topbar);
TopbarChieldContainer.add(TopbarRightView);
bb1.add(TopbarChieldContainer);
win.add(bb1);
win.open();
Проблема в коде / логике в том, что средняя метка не является жидкой, я хочу, чтобы она была гибкой в соответствии с разрешением экрана. Три элемента управления должны быть:
- Выравнивание по левому краю с некоторым левым полем
- Ширина метки экрана 80% с выравниванием по среднему тексту
- Выровненная по правому краю кнопка меню с некоторым правым полем.
1 ответ
Используйте относительное расположение и удалите макет: горизонтальный. Размер левой и правой кнопок статически (40 пикселей, иш?): left: 5, width: 40
а также right: 5, width: 40
, Затем поместите метку заголовка относительно них: left: 45, right: 45
, По умолчанию его ширина будет занимать пространство между левым и правым. Так что, если устройство находится в альбомной ориентации, оно займет все это пространство, минус 90 пикселей. И он изменится, когда вы переориентируетесь, автоматически.
var win = Ti.UI.createWindow({
navBarHidden : true,
orientationModes : [Ti.UI.PORTRAIT]
});
var bb1 = Ti.UI.createView({
top : 0,
height : 40,
left : 0,
backgroundColor : '#35a63c'
});
var TopbarChieldContainer = Ti.UI.createView();
var TopbarLeftView = Ti.UI.createView({
width : CHANGE_TO_WIDTH_OF_LEFT_IMAGE,
left : 5,
});
var TopbarRightView = Ti.UI.createView({
width : CHANGE_TO_WIDTH_OF_RIGHT_IMAGE,
right : 5
});
var leftImage_topbar = Ti.UI.createImageView({
image : "../../images/SideMenuIcon.png",
});
TopbarLeftView.add(leftImage_topbar);
var screenTitle_topbar = Titanium.UI.createLabel({
text : ScreenTitle,
font : {
fontSize : 14,
},
textAlign : Ti.UI.TEXT_ALIGNMENT_CENTER,
color : '#FFF',
left: CHANGE_TO_WIDTH_OF_LEFT_IMAGE_PLUS_FIVE,
right: CHANGE_TO_WIDTH_OF_RIGHT_IMAGE_PLUS_FIVE
});
TopbarRightView.add(RightButton);
TopbarChieldContainer.add(TopbarLeftView);
TopbarChieldContainer.add(screenTitle_topbar);
TopbarChieldContainer.add(TopbarRightView);
bb1.add(TopbarChieldContainer);
win.add(bb1);
win.open();