Flutter开发Destini应用FlatButton点击无响应问题排查求助
错误原因
核心问题位于story_brain.dart的nextStory()方法中:你在给storyNumber赋值时,绝大多数场景错误使用了比较运算符==,而非赋值运算符=,导致点击按钮后剧情编号始终没有变更,所以界面不会跳转到下一题。
修正代码
替换story_brain.dart中的nextStory()方法为以下内容即可:
void nextStory(int choiceNumber){ if(storyNumber==0 && choiceNumber==1) { storyNumber = 2; } else if(storyNumber==2 && choiceNumber==1) { storyNumber = 5; } else if(storyNumber==2 && choiceNumber==2) { storyNumber = 4; } else if(storyNumber==0 && choiceNumber==2) { storyNumber = 1; } else if (choiceNumber == 1 && storyNumber == 1) { storyNumber = 2; } else if(storyNumber==1 && choiceNumber==2) { storyNumber = 3; } else if(storyNumber==3||storyNumber==4||storyNumber==5) { restart(); } }
可选优化点
- 按照代码TODO提示,给第二个按钮包裹
Visibility组件,调用buttonShouldBeVisible()方法控制可见性,结局页就不会显示空内容的第二个按钮。 - 把
storyNumber改成私有变量_storyNumber,避免外部直接修改,符合封装规范。
内容的提问来源于stack exchange,提问作者Karthik KK
相关产品推荐
相关产品推荐

