Пользовательские кнопки Titanium Appcelerator

#titanium #appcelerator #appcelerator-mobile

#titanium #appcelerator #appcelerator-мобильный

Вопрос:

Я новичок в Appcelerator и столкнулся с досадной проблемой, связанной с макетом.

Мне нужно создать строку меню, которую очень легко сделать с помощью обычного html (ul> li> a и это все). Проблема в том, что кажется, что все функции, связанные с кнопками, не являются … настраиваемыми. Я хочу, чтобы кнопки отображались в виде обычного текста, а не кнопок.

Первой мыслью было использовать метки (вместо кнопок). Но… Это правильный путь? Мне нужна строка меню, а не текстовый абзац! Кроме того, меню в некотором роде гибкое, в отличие от ярлыков.

Это одна (из многих!) вещей, которые я пробовал:

     var menu_color = Titanium.UI.createButton({
        title:Ti.Locale.getString("menu_color") || "Color",
        height:24,
        top:10
    });
  

Я также добавил borderWidth:0 (без эффекта) и backgroundColor:none/transparent безуспешно.

Помочь? 🙂

Ответ №1:

Обычно я использую views, когда мне нужно создать то, что вы описали выше.

Например:

Я использую представление с вертикальной компоновкой, затем добавляю свои дочерние представления. Затем дочерние представления имеют прослушиватели для щелчка или любого другого события.

Это позволяет вам лучше контролировать форматирование. Побочным эффектом этого является то, что в некоторых случаях вам нужно будет создать свой собственный пользовательский интерфейс «нажать».

var demo = {win: Ti.UI.currentWindow};

(функция(){

 //Создать представление контейнера 
 demo.vwMain = Ti.UI.CreateView({высота: 100, макет: "вертикальный", цвет фона: "желтый"});
 demo.win.add (demo.vwMain);
 demo.fakebutton1 = Ti.UI.CreateView({высота: 40, цвет фона: 'синий', слева: 25, справа: 25, радиус границы: 5, цвет границы: '#000'});
 demo.vwMain.add (demo.fakebutton1);
 demo.fakebutton2 = Ti.UI.CreateView({top: 5,height: 40, backgroundColor: 'green', слева: 25, справа: 25, borderRadius: 5, borderColor: '#000'});
 demo.vwMain.add (demo.fakebutton2); 

 демо.fakebutton1.addEventListener ('щелчок', функция (e) {
 предупреждение ("Нажата поддельная кнопка 1");
 });

 демо.fakebutton2.addEventListener ('щелчок', функция (e) {
 предупреждение ("Нажата поддельная кнопка 2");
 });

})();

Комментарии:

1. хорошо, кажется, работает почти нормально. Есть способ не указывать ширину (на самом деле просто клонировать поведение панели кнопок без … аспекта панели кнопок)

2. Лучше всего использовать горизонтальное расположение и рассчитывать ширину в зависимости от размера экрана.

Ответ №2:

создайте вид, для свойства layout которого задано значение vertical, и добавьте ярлык или кнопку, которую вы хотите.Вид похож на HTML.Надеюсь, вы понимаете.

Комментарии:

1. Вы понимаете, что это вопрос 4-летней давности, да? 🙂