使用钛中的表格视图创建下拉列表

时间:2015-01-24 13:11:52

标签: drop-down-menu titanium titanium-mobile

我正在创建一个包含下拉列表的表单,其中包含默认值和要选择的选项。并且表单应该有重置按钮以清除dropdownor tableview中的选择选项。当我点击下拉列表时,它应该展开,包含要选择的选项,当用户选择选项时,它会被折叠。如果按下重置按钮,则下拉值将重置为默认值。 / p>

我在谷歌搜索,我在这段代码中得到了一些代码,当我执行时,我只是得到一个扩展的表格视图,当我选择一行时,它仍然保持扩展。

 var win = Ti.UI.createWindow({
title: 'Title goes here',
backgroundColor: '#123456'
});
var checkFlag = true;
var picker = Ti.UI.createPicker({ width:110,left:190,top:150}); 
var data = []; 

data.push(Titanium.UI.createPickerRow({title:'Karnataka'})); 
data.push(Titanium.UI.createPickerRow({title:'tamilnadu'})); 
data.push(Titanium.UI.createPickerRow({title:'kerala'})); 
data.push(Titanium.UI.createPickerRow({title:'goa'})); 
picker.add(data); 
win.add(picker);

var resetbtn = Ti.UI.createButton({
top : '100',
width : '50',
height : '35',
title  : 'Reset'
});
win.add(resetbtn);
resetbtn.addEventListener('click', function(){
Ti.API.info('checkFlag = ' + checkFlag);
if(checkFlag) {
   picker.hide();

    checkFlag = false;
} else {

   picker.show();
checkFlag = true;
}
});
win.open();    

并且使用表格视图或选择器创建下拉列表以及如何在按下重置按钮时设置为默认值是好的。请帮助我,我是钛的新手。

1 个答案:

答案 0 :(得分:1)

好像你在TableView和下拉列表中感到困惑。这两个是不同的元素,有不同的用法。

我建议使用Titanium.UI.Picker创建下拉列表。另外,要以编程方式选择选择器的某些值,您可以使用setSelectedRow()选择器方法。

以下代码将有助于开始:

Ti.UI.backgroundColor = 'white';
var win = Ti.UI.createWindow({
  exitOnClose: true,
  layout: 'vertical'
});

var picker = Ti.UI.createPicker({
  top:50
});

var data = [];
data[0]=Ti.UI.createPickerRow({title:'Bananas'});
data[1]=Ti.UI.createPickerRow({title:'Strawberries'});
data[2]=Ti.UI.createPickerRow({title:'Mangos'});
data[3]=Ti.UI.createPickerRow({title:'Grapes'});

picker.add(data);
picker.selectionIndicator = true;

win.add(picker);
win.open();

var resetbtn = Ti.UI.createButton({
    bottom: '10',
    width : '50',
    height : '35',
    title  : 'Reset'
});
win.add(resetbtn);
resetbtn.addEventListener('click', resetToDefault);

function resetToDefault() {
    picker.setSelectedRow(0, 0, false); // select Bananas, i.e index 0
}