This skill should be used when user asks to "Menu宽度为0", "Menu宽度问题", "Menu显示异常", "Menu子窗口问题", "Menu layout异常", "recreate subwindow", "快速打开Menu问题", "Menu闪退", "Menu位置错误", "子窗口recreate", "Menu崩溃", "Menu打印recreate", "点击无响应", "点击菜单关闭", "菜单位置左上角", "菜单方向不对", "菜单避让坑", "宽度高度为0", or mentions any Menu component issues like Menu width being 0, Menu display problems, Menu subwindow issues, Menu layout exceptions, positioning errors, crashes, click response issues, menu closing immediately, incorrect positioning, direction issues, safe area issues, or zero width/height problems. Provides systematic debugging guidance for Menu component issues including width problems, subwindow recreation, layout exceptions, positioning errors, crash analysis, click issues, menu positioning, and dimension problems with automatic log enhancement patch generation.
This skill should be used when user asks to "Menu宽度为0", "Menu宽度问题", "Menu显示异常", "Menu子窗口问题", "Menu layout异常", "recreate subwindow", "快速打开Menu问题", "Menu闪退", "Menu位置错误", "子窗口recreate", "Menu崩溃", "Menu打印recreate", "点击无响应", "点击菜单关闭", "菜单位置左上角", "菜单方向不对", "菜单避让坑", "宽度高度为0", or mentions any Menu component issues like Menu width being 0, Menu display problems, Menu subwindow issues, Menu layout exceptions, positioning errors, crashes, click response issues, menu closing immediately, incorrect positioning, direction issues, safe area issues, or zero width/height problems. Provides systematic debugging guidance for Menu component issues including width problems, subwindow recreation, layout exceptions, positioning errors, crash analysis, click issues, menu positioning, and dimension problems with automatic log enhancement patch generation.
version
0.2.0
Menu Component Debugging Skill
Systematic debugging and problem diagnosis for Menu component issues in OpenHarmony ACE Engine. This skill provides structured troubleshooting guidance for Menu-related problems with automatic log enhancement patch generation.
Overview
Menu component debugging requires analyzing multiple layers:
Subwindow lifecycle - Window creation, recreation, and destruction
Menu layout algorithm - Width calculation, positioning, and constraint handling
Menu pattern - State management, menu wrapper, and menu items
Pipeline context - Window rect info, theme settings, and display configuration
Event handling - Click detection, state transitions, and gesture processing
Critical Requirements:
⚠️ - no speculation
All log patches MUST be based on actual code analysis
⚠️ Log patches MUST follow OpenHarmony logging standards (TAG_LOGI/W/E macros)
⚠️ Always provide context - include relevant variable values in log statements
⚠️ Use existing log tags - ACE_MENU, ACE_SUB_WINDOW, ACE_OVERLAY
Problem Categories
1. Menu Width Issues
Symptoms:
Menu width displays as 0
Menu appears too narrow or wide
Menu width calculation errors
Common Causes:
displayWindowRectInfo.Width() returns 0 (async initialization not complete)
PipelineContext source issues (subwindow vs main window)
Menu parameter configuration Errors
Theme settings problems
2. Subwindow Recreation Issues
Symptoms:
Frequent "recreate subwindow" logs
Menu fails to show on rapid open
Window state transitions (ATTACHING/DETACHING)
Menu displays blank or delayed
Common Causes:
Quick Menu opening (DETACHING state conflict)
Display ID changes
Menu wrapper state mismatches
3. Menu Layout Issues
Symptoms:
Menu positioned incorrectly
Menu overlaps with target
Menu clipped or truncated
Menu displays on wrong screen side
Common Causes:
Window rect calculation errors
Offset calculation problems
Device type issues (foldable phones)
Safe area not considered
4. Menu Crash/Instability
Symptoms:
Menu crashes when opening
Menu disappears unexpectedly
Menu interaction failures
Common Causes:
Null pointer dereferences
Menu pattern lifecycle issues
State management errors
5. Click Response Issues
Symptoms:
Click on menu trigger has no response
Menu fails to open when clicked
Delayed response to menu interaction
Common Causes:
Event hub not properly initialized
Gesture event not registered
Menu state prevents click handling
6. Menu Auto-Close Issues
Symptoms:
Menu closes immediately after opening
Menu disappears when clicked
Menu closes without user interaction
Common Causes:
State machine issues in menu wrapper
Touch event handling conflicts
HideMenu called incorrectly
7. Menu Positioning Issues
Symptoms:
Menu positioned at screen top-left corner
Menu appears at wrong screen position
Menu placement calculation errors
Common Causes:
Offset calculation problems
Anchor point configuration errors
MenuWindowRect calculation incorrect
8. Safe Area/Navigation Bar Issues
Symptoms:
Menu overlaps with navigation bar
Menu covers status bar
Menu doesn't avoid system UI
Common Causes:
Safe area insets not applied
Window rect doesn't account for system UI
Display cutout settings ignored
9. Menu Dimension Issues
Symptoms:
Menu width is 0
Menu height is 0
Menu size calculations return 0
Common Causes:
Async initialization timing
Pipeline context not ready
DisplayWindowRectInfo not properly initialized
Debugging Workflow
Step 1: Identify Problem Category
Based on symptoms, identify which problem category:
Width/Dimension Issues → Look for:
Menu width is 0
menuMaxWidth = 0
displayWindowRectInfo.Width() = 0
Subwindow Issues → Look for:
recreate subwindow
DETACHING state
MenuWindowRect
Layout Issues → Look for:
MenuOffset incorrect
position calculation error
menuWindowRect
Crash Issues → Look for:
Segmentation fault
Null pointer
CHECK_NULL_*
Click/Auto-Close Issues → Look for:
HideMenu called
state transition
gesture event not received