首先一个Widget只会return一次,但是如果有多个情况,多个判断,通过不同情况返回不同布局,就可以通过叠加的方式,下一个布局会替换掉上一个布局
messageTypeView==Container();//保底防止报错
///文字
case 1:
messageTypeView = textCustomData();//首先赋一个布局,替换掉原来的Container()了
if (myUserInfo == null || mapImCustomInfo == null) {
return messageTypeView;//如果符合条件,那就是上面那个textCustomData()
} else {
if (mapImCustomInfo[msgobj.userID] == null) {
return messageTypeView;//如果符合条件,那就是上面那个textCustomData()
}
}
messageTypeView = textCustomDataVIP();//最后会跑这里判断,如果符合条件,就messageTypeView就是用这个了,替换掉上面的textCustomData()了
break;
上面是switch里面的,会从上往下一行行代码跑,不管return了啥。
如果是一个方法里面的,就只会return一次,如果return了,剩下的代码就不会执行了