1

Blackberry Cascades アプリケーションで奇妙な問題が発生しています。アクションバー(アプリケーションの下部)にボタンを追加しようとしていました。しかし、Blackberry 10 Dev Alpha シミュレーター (BB10_0_10.261) でテストすると、下の画像に示すように、同じボタンの 2 つ (場合によっては 3 つ) のバージョンがあるようです。通常は1つしかないはずですが?

ボタンが多すぎる

だから私がやっていることは、次のように QML の私のページにボタンを追加することです:

NavigationPane {
    Page {
        Container {
            layout: StackLayout {
            }
            ListView {
                ...
            }
        }
        actions: [
            ActionItem {
                title: "New Event"
                ActionBar.placement: ActionBarPlacement.OnBar // HERE
                onTriggered: {
                    var page = newEventPage.createObject();
                    navigationPane.push(page);
                }
                attachedObjects: ComponentDefinition {
                    id: newEventPage
                    source: "addEvent.qml"
                }
            }
        ]
    }
    onPopTransitionEnded: {
        page.destroy();
    }
}

このコードは、「addEvent.qml」にリンクする「新しいイベント」ボタンを追加するだけです。

Actionbar.placement: ActionBarPlacement.OnBarしかし、行(上記のコードで でマークされている) を削除 (またはコメント)HEREすると、予想どおり 1 つのボタンしか表示されません。しかし、このボタンはオーバーフロー メニューにありますが、下部の ActionBar に配置したいのです。

ボタンの異なるバージョンはすべて、まったく同じことを行います (ちなみに、予想される動作: addEvent.qml を開く)。

私がすでに試したこと:「Clean ..」、次に「Rebuild」。これはうまくいきませんでした。これは間違った場所にある可能性があると思ったので、アクション配列を他の場所に移動しようとしましたが、これも役に立ちませんでした。シミュレーターでアプリケーションを削除してから、再インストールします。

私のコンピューターかもしれないと思ったので、別のコンピューターや他のシミュレーターでも試しました。しかし、私はそこで同じ問題を抱えていました。

これがバグかどうかはわかりませんが、カスケード開発の経験があまりないので、何か間違っていると思います。私はどこでも見ましたが、同じ問題を抱えている人は他にいません。BB10 デバイスを (まだ) 持っていないため、実際のデバイスでテストしていません。

4

1 に答える 1

1

Blackberry Cascades フォーラムでこの質問をしたのは、ほとんどの専門家がそこにいると思ったからです。どうやら、彼らは私の質問に答えることができました。

どうやら問題はqml->setContextProperty("model", model); 、C++ コードで使用したことでした。そして、それは大きな違いをもたらさないと思ったので、この行を行の後ろに置きました.AbstractPane *root = qml->createRootObject<AbstractPane>(); しかし、明らかに違いがあります。

したがって、この問題は、知っていれば実際にはかなり簡単に解決できます。行をsetContextProperty行の前に移動するだけでcreateRootObject、すべてが解決されます。

そして、私が 3 つのボタンで抱えていた問題は、行setContextPropertyの後ろに 2 行のコードがあったことのようcreateRootObjectです。そのため、すべてsetContextPropertyの行でボタンが複製されました。

于 2013-02-12T09:08:32.357 に答える