getTabBody method
dynamic
getTabBody(
- dynamic tabname,
- dynamic context,
- dynamic backcolor
Implementation
getTabBody(tabname, context, backcolor) {
myLogAll('getTabBody');
if (_tabList[tabname] == null) {
return null;
}
dynamic data = _tabList[tabname][gData][_tabList[tabname][gTabIndex]];
if (!(data[gVisible] ?? true)) {
return null;
}
if (data[gType] == gCard) {
var body = data[gBody];
if (body == null) {
for (int i = 0; i < _tabList[tabname][gData].length; i++) {
if (_tabList[tabname][gData][i][gLabel] == data[gLabel]) {
_tabList[tabname][gData][i][gVisible] = true;
body = _tabList[tabname][gData][i][gBody];
break;
}
}
}
return getCard(body, context, tabname, backcolor, body);
} else if (data[gType].endsWith(gTable)) {
data[gTabName] = tabname;
//print('=========== getTabBody 2 1');
return getTableBody(data, context, backcolor);
} else if (data[gType] == gTab) {
//设置明细tab
List<Widget> result = [];
dynamic tabID = data[gTabid];
List dataChild = [];
List dataBody = data[gBody][0][gData];
for (int i = 0; i < dataBody.length; i++) {
Map data0 = getMap(dataBody[i]);
dataChild.add(data0);
}
setTabBasic(dataChild, context, tabID);
var tab = getTab(tabID, context);
if (tab == null) {
return getEmptyWidget();
}
//var tabData = tab[gData];
final double screenHeight = MediaQuery.of(context).size.height;
result.add(Column(
children: [
getTabByIndex(tabID, context, tab),
/*SizedBox(
height: 60.0,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: tab[gData].length,
itemBuilder: (context, index) =>
getTabByIndex(index, tabID, context,tab),
),
),*/
SizedBox(
height: screenHeight * 0.7,
child: getTabBody(tabID, context, backcolor),
)
],
));
//show tab
if (result.length > 1) {
result[0] = Expanded(child: result[0]);
Widget aRow = Column(
mainAxisAlignment: MainAxisAlignment.center, children: result);
return aRow;
}
return result[0];
} else if (data[gType] == gTabletree) {
//dynamic tableName = data[gActionid];
setTreeNode(data, context);
return getTreeBody(data, context, backcolor);
}
return MyLabel(
{gLabel: data[gType] + ' will be available soon'}, backcolor);
}