(Titanium mobile, Android) activeTab.open () в новом окне не сохраняются вкладки - PullRequest
0 голосов
/ 22 сентября 2011

Я новичок, и я видел похожие вопросы, но довольно старые и без решения.Все, что я хочу, это открыть новое окно внутри ActiveTab и сохранить группу вкладок.К сожалению, мой код открывает новое окно, но не сохраняет вкладки, окно просто полноэкранное.Я был бы очень признателен, если бы кто-нибудь смог подтвердить, возможно ли то, чего я хочу достичь.Может быть, с представлениями как-то ... Еще раз это должно работать на Android.Вот код:

// this sets the background color of the master UIView (when there are no windows/tab groups on it)
Titanium.UI.setBackgroundColor('#000');

// create tab group
var tabGroup = Titanium.UI.createTabGroup();

//
// create base UI tab and root window
//
var win1 = Titanium.UI.createWindow({  
    title:'Tab 1',
    backgroundColor:'#fff'
});
var tab1 = Titanium.UI.createTab({  
    icon:'KS_nav_views.png',
    title:'Tab 1',
    window:win1
});


//
// create controls tab and root window
//
var win2 = Titanium.UI.createWindow({  
    title:'Tab 2',
    backgroundColor:'#fff'
});
var tab2 = Titanium.UI.createTab({  
    icon:'KS_nav_ui.png',
    title:'Tab 2',
    window:win2
});

var label2 = Titanium.UI.createLabel({
    color:'#999',
    text:'I am Window 2',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto'
});

win2.add(label2);


var data = [
    {title:"Sample 1",color:'black',hasChild:true,font:{fontSize:16,fontWeight:'bold'}},
    {title:"Sample 2",color:'black',hasChild:true,font:{fontSize:16,fontWeight:'bold'}}
    ];
var table = Titanium.UI.createTableView({
    data:data,
    separatorColor: '#ccc',
    backgroundColor:'#fff'
    });
win1.add(table);

// create table view event listener
table.addEventListener('click', function(e)
{
        var win = Titanium.UI.createWindow({
            url:'windows/main.js'       
        });

        // this simply opens the new created window but full screen and without original tab group.

         tabGroup.activeTab.open(win,{animated:true});


});

//
//  add tabs
//
tabGroup.addTab(tab1);  
tabGroup.addTab(tab2);  


// open tab group
tabGroup.open();

Ответы [ 2 ]

0 голосов
/ 11 декабря 2012

В настоящее время нет способа сделать это на Android:

http://developer.appcelerator.com/question/145471/application-with-strange-navigation-how-to-implement-it#answer-252500

здесь вы можете найти демонстрацию моего решения ...

http://sharesend.com/kbkasavo

надеюсь, это поможет

0 голосов
/ 05 октября 2011

Вы должны создать навигационную группу для каждой вкладки окна. Например

//Here's the first window...
var first = Ti.UI.createWindow({
    backgroundColor:"#fff",
    title:"My App"
});

Далее мы создадим NavigationGroup. Это компонент только для iPhone, который управляет стеком окон (справочный документ) - мы передадим его нашему первому окну, которое будет использоваться в качестве первоначально видимого окна:

    //Here's the nav group that will hold them both...
    var firstnavGroup = Ti.UI.iPhone.createNavigationGroup({
        window:first
    });




    //This is the main window of the application
    var mainfirst = Ti.UI.createWindow();
    mainfirst.add(firstnavGroup);

затем перевести это главное окно в таб. Повторите этот процесс для всех вкладок

Теперь, когда вам нужно открыть новое окно, вы должны написать

var second = Ti.UI.createWindow({
  background:"#fff",
  title:"Child Window"
});

  firstnavGroup.open(second);

Надеюсь, это поможет вам.

...