-1

ボタンがクリックされたときに表示されるように設定されたビューがあります。

これは機能しますが、ボタンがすでに 1 回クリックされている場合に限ります。

したがって、動作しますが、本来の動作ではありません。ボタンが初めてクリックされたとき。

ところで、後でコードでビューが作成されるとすぐに、ビューをtableViewに追加します。

ここにいくつかのコードがあります...

var vLabel = Ti.UI.createView({
    backgroundColor : 'white',
    width : '100%',
    height : 46,
    bottom : 25
});
var topBorderView = Ti.UI.createView({
    backgroundColor : '#d8d8d8',
    width : '100%',
    height : 1,
    top : 0
});
var aLabel = Ti.UI.createLabel({
    backgroundColor : 'white',
    objName : 'aLabel',
    text : "All Points - Takes a few moments to load.",
    font : {
        fontSize : 12
    },
    color : '#df0101',
    backgroundPaddingTop : 5,
    backgroundPaddingBottom : 3,
    left : '5%',
    width : '90%',
    height : 42,
    top : 2,
    zIndex : 6000,
    textAlign : Ti.UI.TEXT_ALIGNMENT_CENTER
});

vLabel.add(topBorderView);
vLabel.add(aLabel);

sortButton.addEventListener('click', function(e) {
    vLabel.visible = 1;
    vLabel.show();

    var loaders = getLoader();
    tableView.add(loaders);
    loaders.start();

    var tempRows = [];

    if (content.uid == 998) {

        if (e.index == 0) {
            tempRows = sortAllPoints(content, e.index);
            loaders.stop();
            vLabel.visible = false;
            tableView.remove(loaders);
            tableView.setData(tempRows, {
                animationStyle : Titanium.UI.iPhone.RowAnimationStyle.NONE
            });
            rowMainData = tableView.data;
            SearchBar.value = '';
        } else {
            tempRows = sortAllPoints(content, e.index);
            loaders.stop();
            vLabel.visible = false;
            tableView.remove(loaders);
            tableView.setData(tempRows, {
                animationStyle : Titanium.UI.iPhone.RowAnimationStyle.NONE
            });
            rowMainData = tableView.data;
            SearchBar.value = '';
        }
    }
}); 

2回目のボタンクリックでビューが表示され、最初のボタンクリックでは表示されない理由について、誰にも手がかりがありますか?? それ以外はすべて正常に機能します。ローダーのアニメーション

どうもありがとう、ジョージ。

4

2 に答える 2

1

ラテラルシンキング!それが必要です。ビューの位置をtableViewの下部に相対的に設定しました。これは、テーブルに何もないときに機能しました。コンテンツをロードまたはソートしていました。答えは、コンテンツがロードされているかソートされているかに関係なく、常に表示されるようにすることでした。睡眠はこういうのにいい!

于 2013-06-24T08:44:44.560 に答える
0

使用setVisible方法:

someView.setVisible = true
于 2015-05-05T06:27:16.093 に答える