我需要在按下相应的选项卡菜单时更改列表视图吗?
I need to change the List view when the appropriate tab menu is pressed?
我需要在按下标签菜单时相应地更改页面。
这是代码:
class HistoryListView extends StatefulWidget {
String? empcode;
HistoryListView({this.empcode});
@override
State<HistoryListView> createState() => _HistoryListViewState();
}
class _HistoryListViewState extends State<HistoryListView> {
String _getTitle(ActivityTab selectedMenu) {
if (selectedMenu == ActivityTab.COMMITTED_DATE) {
return "Committed Date";
} else if (selectedMenu == ActivityTab.CALL_NOT_ANSWERED) {
return "Call not answered";
} else if (selectedMenu == ActivityTab.WRONG_NUMBER) {
return "Wrong or invalid number";
} else if (selectedMenu == ActivityTab.MISBEHAVIOR) {
return "Misbehaviour";
}
return "";
}
List<int> _getStatus(ActivityTab selectedMenu) {
if (selectedMenu == ActivityTab.COMMITTED_DATE) {
return [Constants.STATUS_COMMITTED_DATE];
} else if (selectedMenu == ActivityTab.CALL_NOT_ANSWERED) {
return [Constants.STATUS_CALL_NOT_ANSWERED];
} else if (selectedMenu == ActivityTab.WRONG_NUMBER) {
return [Constants.STATUS_WRONG_NUMBER, Constants.STATUS_INVALID_NUMBER];
} else if (selectedMenu == ActivityTab.MISBEHAVIOR) {
return [
Constants.STATUS_ABUSING_LANGUAGE,
Constants.STATUS_DID_NOT_AGREE_TO_PAY,
Constants.STATUS_ADVISED_TO_CALL
];
}
return [0];
}
@override
Widget build(BuildContext context) {
var provider = Provider.of<ActivityTabModel>(context);
return Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
_getCommittedText(provider.selectedMenu),
verticalSpace(Utils.getHeight(20)),
Expanded(
child: _StudentListItem(provider.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: _getStatus(provider.selectedMenu),),
),
]);
}
Widget _getCommittedText(ActivityTab selectedMenu) => Text(
_getTitle(selectedMenu),
style: TextStyle(
color: ColorUtils.PEACOCK_BLUE,
fontSize: Utils.getFontSize(16),
fontFamily: Constants.axiforma,
fontWeight: FontWeight.w500
),
);
}
这些“承诺日期”、“未接电话”、“错误或无效号码”和“不当行为”是页面顶部的一些菜单。当我单击特定菜单时,我需要获取与我选择的菜单对应的 _StudentListItem。在此代码中,“提交日期”是默认页面,当我选择“呼叫未接听”菜单时,将显示其 _StudentListItem(始终显示提交日期列表)。请给我一个好的解决方案。
Widget _getMenuItem(ActivityTabModel tab) {
if (tab.selectedMenu == ActivityTab.COMMITTED_DATE)
return StudentListItem(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu),);
else if (tab.selectedMenu == ActivityTab.CALL_NOT_ANSWERED)
return CallNotAnswered(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
else if (tab.selectedMenu == ActivityTab.WRONG_NUMBER)
return InvalidNumber(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
else if (tab.selectedMenu == ActivityTab.MISBEHAVIOR)
return Misbehave(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
return Container();
}
我需要在按下标签菜单时相应地更改页面。 这是代码:
class HistoryListView extends StatefulWidget {
String? empcode;
HistoryListView({this.empcode});
@override
State<HistoryListView> createState() => _HistoryListViewState();
}
class _HistoryListViewState extends State<HistoryListView> {
String _getTitle(ActivityTab selectedMenu) {
if (selectedMenu == ActivityTab.COMMITTED_DATE) {
return "Committed Date";
} else if (selectedMenu == ActivityTab.CALL_NOT_ANSWERED) {
return "Call not answered";
} else if (selectedMenu == ActivityTab.WRONG_NUMBER) {
return "Wrong or invalid number";
} else if (selectedMenu == ActivityTab.MISBEHAVIOR) {
return "Misbehaviour";
}
return "";
}
List<int> _getStatus(ActivityTab selectedMenu) {
if (selectedMenu == ActivityTab.COMMITTED_DATE) {
return [Constants.STATUS_COMMITTED_DATE];
} else if (selectedMenu == ActivityTab.CALL_NOT_ANSWERED) {
return [Constants.STATUS_CALL_NOT_ANSWERED];
} else if (selectedMenu == ActivityTab.WRONG_NUMBER) {
return [Constants.STATUS_WRONG_NUMBER, Constants.STATUS_INVALID_NUMBER];
} else if (selectedMenu == ActivityTab.MISBEHAVIOR) {
return [
Constants.STATUS_ABUSING_LANGUAGE,
Constants.STATUS_DID_NOT_AGREE_TO_PAY,
Constants.STATUS_ADVISED_TO_CALL
];
}
return [0];
}
@override
Widget build(BuildContext context) {
var provider = Provider.of<ActivityTabModel>(context);
return Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
_getCommittedText(provider.selectedMenu),
verticalSpace(Utils.getHeight(20)),
Expanded(
child: _StudentListItem(provider.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: _getStatus(provider.selectedMenu),),
),
]);
}
Widget _getCommittedText(ActivityTab selectedMenu) => Text(
_getTitle(selectedMenu),
style: TextStyle(
color: ColorUtils.PEACOCK_BLUE,
fontSize: Utils.getFontSize(16),
fontFamily: Constants.axiforma,
fontWeight: FontWeight.w500
),
);
}
这些“承诺日期”、“未接电话”、“错误或无效号码”和“不当行为”是页面顶部的一些菜单。当我单击特定菜单时,我需要获取与我选择的菜单对应的 _StudentListItem。在此代码中,“提交日期”是默认页面,当我选择“呼叫未接听”菜单时,将显示其 _StudentListItem(始终显示提交日期列表)。请给我一个好的解决方案。
Widget _getMenuItem(ActivityTabModel tab) {
if (tab.selectedMenu == ActivityTab.COMMITTED_DATE)
return StudentListItem(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu),);
else if (tab.selectedMenu == ActivityTab.CALL_NOT_ANSWERED)
return CallNotAnswered(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
else if (tab.selectedMenu == ActivityTab.WRONG_NUMBER)
return InvalidNumber(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
else if (tab.selectedMenu == ActivityTab.MISBEHAVIOR)
return Misbehave(tab.selectedMenu,getEmpCode: widget.empcode,feedbackStatus: getStatus(tab.selectedMenu));
return Container();
}