次のコードを使用して、ハードウェア ボタンの [戻る] と [その他] のコールバックを設定します。
static void win_more_cb(void* data, Evas_Object* obj, void* event_info) {
appdata_s* ad = data;
if (ad->ctxpopup != NULL) evas_object_del(ad->ctxpopup);
ad->ctxpopup = elm_ctxpopup_add(ad->win);
elm_object_style_set(ad->ctxpopup, "more/default");
eext_object_event_callback_add(ad->ctxpopup, EEXT_CALLBACK_BACK, _eext_ctxpopup_back_cb, NULL);
eext_object_event_callback_add(ad->ctxpopup, EEXT_CALLBACK_MORE, _eext_ctxpopup_back_cb, NULL);
evas_object_smart_callback_add(ad->ctxpopup, "dismissed", ctxpopup_dismissed_cb, NULL);
elm_ctxpopup_item_append(ad->ctxpopup, "Add", NULL, ctxpopup_add_cb, NULL);
move_more_ctxpopup(ad->ctxpopup);
evas_object_show(ad->ctxpopup);
}
しかし、それは決して呼び出されません。
_eext_ctxpopup_back_cb
注意:標準の代わりに、デバッグログを書き込んで呼び出されたかどうかを確認する、特別に作成された を使用しましたeext_ctxpopup_back_cb
。私も一緒にやってみましeext_ctxpopup_back_cb
た。
このコードでは、ハードウェア ボタン ([戻る] または [その他]) をタップすると、メイン ウィンドウに設定されたコールバックが呼び出されます。_eext_ctxpopup_back_cb
が呼び出されることはありません。
メイン ウィンドウのコールバックを設定するコードは次のとおりです。
eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad);
eext_object_event_callback_add(ad->win, EEXT_CALLBACK_MORE, win_more_cb, ad);
そのため、eext_object_event_callback_add()
実際には Ctxpopup のコールバックが設定されていないか、Ctxpopup が何らかの理由でイベントをEEXT_CALLBACK_BACK
受信していないようです。EEXT_CALLBACK_MORE
eext_object_event_callback_add()
Tizen ネイティブ API のドキュメントや多くのサンプル アプリケーションで Ctxpopupの使用を確認したので、動作するはずでしたが、動作しませんでした。
ご意見をお聞かせください。
アップデート:
まだ準備ができていないアプリを Tizen デバイスにデプロイしたところ、[戻る] ボタンが機能しました! したがって、これはデバッグ環境またはエミュレーターでのものです (エミュレーターでは機能しません)。