私は Appcelerator Titanium の初心者で、いくつかのモバイル アプリを開発して練習していて、ある状況に遭遇し、助けが必要です。
テーブルから表示されるアイテムのリストがあり、アイテムをクリックすると、クリックしたアイテムからいくつかの入力フィールドのスライドの下に大きなスペースが必要です。基本的には図 1 のサンプルを添付します。タッチすると (もちろんモバイルで)、図 2 のように拡大するはずです。
ありがとう。
私は Appcelerator Titanium の初心者で、いくつかのモバイル アプリを開発して練習していて、ある状況に遭遇し、助けが必要です。
テーブルから表示されるアイテムのリストがあり、アイテムをクリックすると、クリックしたアイテムからいくつかの入力フィールドのスライドの下に大きなスペースが必要です。基本的には図 1 のサンプルを添付します。タッチすると (もちろんモバイルで)、図 2 のように拡大するはずです。
ありがとう。
これは Titanum では少しトリッキーです。見た目どおり、行ベースのアプローチです。したがって、最初に使用することを決定する必要がありますTableView
var tableView = Ti.UI.createTableView({
width: Ti.UI.FILL,
height: Ti.UI.FILL,
});
次に、左側の画面から行を追加する必要があります。これらは単純な行です。
var rows = [];
for (var i = 0; i<data.length; i++) {
var row = Ti.UI.createTableViewRow(...);
// do some layout, add some views here
rows.push(row);
}
// add to table view
tableView.data = [rows];
次に、「クリック」リスナーを適用する必要があります。
var isOpen = false; // is already one element clicked and opened?
var whichIsOpen = undefined; // if yes, which one (index of clicked element)?
tableView.addEventListener('click', function(e){
if(isOpen && e.index === whichIsOpen) {
tableView.deleteRow(whichIsOpen+1);
isOpen = false;
return;
}
if(isOpen && e.index === whichIsOpen + 1) {
return;
}
tableView.deleteRow(whichIsOpen+1);
var specialRow = Ti.UI.createTableViewRow(...); // row which contains the elements of the right screen
var newIndex = e.index > whichIsOpen ? e.index : e.index + 1; // because removed one
tableView.insertRowAfter(newIndex-1, specialRow);
whichIsOpen = newIndex;
})
このソリューションでは、同時に 1 つの要素しか開くことができません。私は頭からこれをタイプしました、私はテストしませんでした。だからそれはあなた次第です!