0
我想用MenuLayer在卵石上創建一個應用程序。我的意圖是使用MenuLayer創建菜單,然後創建子菜單。Iterative MenuLayer Pebble
我使用「menu_layer_set_callbacks」方法做了一些基本的實現,併爲每個子菜單層註冊了回調方法。但是,現在我意識到它太亂了。
我想知道在框架中是否有任何簡單的方法可以滿足這個要求。
謝謝。
KK
我想用MenuLayer在卵石上創建一個應用程序。我的意圖是使用MenuLayer創建菜單,然後創建子菜單。Iterative MenuLayer Pebble
我使用「menu_layer_set_callbacks」方法做了一些基本的實現,併爲每個子菜單層註冊了回調方法。但是,現在我意識到它太亂了。
我想知道在框架中是否有任何簡單的方法可以滿足這個要求。
謝謝。
KK
我不知道你是什麼結束了,但我的項目,我做了一組子窗口,但重複使用相同的回調,您可以通過自定義數據,讓每一個知道什麼類型它是。然後只需按需要的子窗口
void sub_window_load(Window* parentWindow) {
Layer* window_layer = window_get_root_layer(parentWindow);
const GRect bounds = layer_get_frame(window_layer);
MenuLayer* new_layer = menu_layer_create(bounds);
const int context = *((int*) window_get_user_data(parentWindow));
if (context == ID_A) s_A_layer = new_layer;
else if (context == ID_B) s_B_layer = new_layer;
menu_layer_set_callbacks(new_layer, window_get_user_data(parentWindow), (MenuLayerCallbacks){
.get_num_sections = sub_menu_get_num_sections_callback,
.get_num_rows = sub_menu_get_num_rows_callback
/* etc */
});
menu_layer_set_click_config_onto_window(new_layer, parentWindow);
layer_add_child(window_layer, menu_layer_get_layer(new_layer));
}
void createSubWin(Window** w, int* context) {
*w = window_create();
window_set_user_data(*w, context);
window_set_window_handlers(*w, (WindowHandlers) {
.load = sub_window_load,
.unload = sub_window_unload
});
}
請告訴我們一些代碼,因爲它是一個非常低質量的問題。 – Tyler 2015-03-31 23:48:08