我需要在按下相应的选项卡菜单时更改列表视图吗?

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();
  }