我無法在任何地方找到實現簡單多重選擇彈出窗口的庫或模塊。我想要的內容完全類似於在網頁上觸摸選項/選擇對話框後出現的內容。Titanium mobile multiple select
有什麼辦法讓網頁的選項/選擇彈出沒有頁面。也許可以創建隱藏頁面,並自動選擇選項對話框,觸發它彈出。
可以做到這一點嗎?它在iOS上看起來如何?我只有android才能測試。
我無法在任何地方找到實現簡單多重選擇彈出窗口的庫或模塊。我想要的內容完全類似於在網頁上觸摸選項/選擇對話框後出現的內容。Titanium mobile multiple select
有什麼辦法讓網頁的選項/選擇彈出沒有頁面。也許可以創建隱藏頁面,並自動選擇選項對話框,觸發它彈出。
可以做到這一點嗎?它在iOS上看起來如何?我只有android才能測試。
至少有兩種實現方法。不需要特殊的模塊:
首先,你可以使用一個Ti.UI.Picker這是一小部分選擇有用的。這看起來像是一個日期選擇器,它在iOS和Android上非常相似。你可以在documentation找到例子。 更新:看起來,雖然在本機iOS上支持,但在鈦中使用複選標記是不可能的。
或者,您可以在模式或彈出窗口(僅限ios)窗口或單獨的視圖(這對於android更好)中使用table view(列表)。這對於大量選擇非常有用,因爲您可以提供搜索欄。選擇將通過設置hasCheckmark: true
在table view row上觸發。 (爲了更好的用戶界面中,使用updateRow上表視圖和使用動畫製作方法)
這是第二溶液
var self = Ti.UI.createWindow(...);
var options = [/*array with all options*/ {title: 'Option 1', value: 1}, {title: 'Option 2', value: 2}];
var selectedOptions = [0]; // array to store selected options, also pass preselected options
var tableView = Ti.UI.createTableView({...});
// add rows
var i = 0, rows = [];
options.forEach(function(option) {
var row = Ti.UI.createTableViewRow({hasCheck: selectedOptions.indexOf(i)!==-1, title: option.title });
rows.push(row);
});
tableView.setData(rows);
tableView.addEventListener('click', function(e) {
var state = e.rowData.hasCheck;
// reuse existing row (using its configuration, not its instance)
var row = Ti.UI.createTableViewRow(e.rowData);
row.hasCheck = !e.rowData.hasCheck;
// or create a really new one
var row = Ti.UI.createTableViewRow({
//config here,
hasCheck: !e.rowData.hasCheck,
);
tableView.updateRow(e.index, row, {animated: true});
if (state) {
selectedOptions.push(e.index
} else {
selectedOptions.splice(selectedOptions.indexOf(e.index),1);
});
self.open({modal: true});
多項選擇可以在這兩種情況下的實施方式的一部分。在這兩種情況下,您都應該提供完成按鈕以完成工作。
好吧,我想你的第一個建議,並發現,在Android(不知道的iOS)只允許你選擇一個項目,如單選按鈕。如果它有複選框,這對我來說是完美的。你知道任何方式來啓用複選框嗎? – 2013-03-04 10:03:39
第二個建議看起來像它會工作,感謝您的鏈接,我不知道你可以添加系統複選標記到行。你有沒有任何示例代碼,這聽起來像你的描述,就像你已經徹底實現了你的指尖一樣。 – 2013-03-04 10:06:25
嗨,我更新了我的答案,並添加了視覺選擇多個選項的重要部分。此外,您需要一個小數組,其中包含用戶按完成按鈕時返回的所有選定項目。只需將該表視圖放置在彈出窗口或模式窗口中,或者將其放置在Android上的單獨視圖或窗口中。 – 2013-03-04 11:27:14