1
  • アプリケーションの種類: モバイル
  • チタン SDK: 3.1.0.GA
  • プラットフォームとバージョン: iOS 6.1
  • デバイス: iOS シミュレーター
  • ホスト オペレーティング システム: OSX 10.8.3
  • チタン スタジオ: 3.1.0.201304151600

TableViewRow でテキスト フィールドを条件付きで表示/非表示にしたいと思います。これを行うには、行の高さを拡張する必要があります。ただし、次のコードは機能しません。TableViewRow は実際には Alloy コントローラーです。アニメ化できないことに気付く前に、最初にアニメートしてみました。今、私は高さを変更しようとしていますが、それも機能していません。高さプロパティを直接無効に設定するだけでなく、 setHeight メソッドを使用してみました。何か案は?

var notesVisible = false;

function notes_click() {

    if(notesVisible == false) {
        Ti.API.info('expanding');
        $.row.height = 200;
        // $.notes_container.setHeight(124);
        notesVisible = true;
    } else {
        Ti.API.info('contracting');
        $.row.height = 75;
        $.notes_container.setHeight(0);
        notesVisible = false;
    }

};
4

2 に答える 2

2

これには 2 つの良い方法がありますが、どちらもクリック イベント リスナーから行う必要があります。

方法 1) 行の「高さ」変数を直接変更する方法 方法 2) 新しい行を作成し、現在の行を新しい行に置き換える方法

方法 1 はより簡単ですが、使用している SDK のバージョンによっては問題があることがわかりましたが、3.1.0 では動作するはずです。どちらのメソッドも、クリックに基づいてどの行に作用するかを Titanium に伝えるのが簡単なため、'click' eventListener から呼び出す必要があります。

ここに例があります

currentTableview.addEventListener('click',function(e)
{
  // DO whatever your row is supposed to do when clicked

  // Now lets change the height of the row to a new height, 200 in this example
  e.row.height = 200
}

方法 2 では、新しい行を作成してから、現在の行をこの呼び出しで置き換える必要があります。

currentTableview.updateRow(e.index,newlyCreatedUpdatedRow);
于 2013-06-18T14:58:40.473 に答える
0

誰かから尋ねられた古い質問であることは知っていますが、提供された解決策は機能しません。これに対する最善の解決策は、再帰関数を作成して行の高さを変更し、うまくいけばその行内のビューの可視性を操作する必要があると思います誰かを助けるでしょう:)

于 2016-04-11T08:01:46.763 に答える