Debug focus nodes
- 主要语言
- Dart
- 星标
- 1.7k
- 派生
- 404
- 平均合并
- 6 天 17 小时
- 30 天内合并 PR
- 18
描述
It would be useful if focusNodes was possible to see in the widget inspector tree and also see which one is currently focused.
The only solution I found to figure out which focusNode has foucs is to
1. stick in a shortcut in the three that grab the focused node from context,
2. put a break point on the print row
3. use TAB key in app to move focus to the node I have no idea where it is located
4. then tap R key
5. Try to figure out where in the tree it is located, which unfortunately is not that easy. The _debugLabel might give some clues and one can go into _parent and _children and read their _debugLabel to try to figure out where in the tree this focusNode is loocated
```
CallbackShortcuts(
bindings: {
const SingleActivator(LogicalKeyboardKey.keyR): () {
print(FocusScope.of(context).focusedChild);
},
},
child: ..
)
```
An alternative also helpful feature would be if I could do the following:
1. in a berakpoint with context in scope put eg `FocusScope.of(context).focusedChild` in the watch window
2. somehow highlight this widget in the widget inspector tree and/or in the app.
# Use case
In the case I try to debug there is four buttons on the screen and when I tab from the third one, there is an invisible focus node somewhere that I think receives the focus as the fourth button does not receive focus when I have wrapped it in a Link widget. I did a simplified case that did not reproduce this bug, so in my big app I want to try to understand where this focus node is coming from.
贡献指南
调研方向
从 widget inspector 树以及 FocusScope.of(context).focusedChild 暴露的焦点状态开始。比较所请求的选项:在树中显示 focusNodes 和当前获得焦点的节点,或者通过调试器监视表达式突出显示获得焦点的 widget。完成标准是,开发者可以识别获得焦点的节点,并在 inspector 中定位或突出显示其 widget。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- dart
- 领域
- devtools
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100