title: Pages not maintaing state while scrolling
body: <p>I created this multiple pages which has different widgets inside it like TextFormField, DropDown, checkBox etc. I created a widget that selects pages on basis of question type fetch from api.
  This question selector widget is called inside ListView.builder. I am using cubit to manage state.Each page has it different corresponding cubit.
  The problem is each time scroll the widget state is lost.
  <a href="https://i.stack.imgur.com/Wqo7b.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Wqo7b.gif" alt="This is my ui" /></a></p>
  <p>My ListView.builder</p>
  <pre><code> ListView.builder(
      itemCount: state.question[0].groups![0].items!.length,
      itemBuilder: (BuildContext context, int index) {
         return fetchQuestionWidget(
            question: state.question[0].groups![0].items![index],
             hintText: &quot;&quot;,
             imageList: imageList ?? [],
             );
       });
  </code></pre>
  <p>My widget selector</p>
  <pre><code>Widget fetchQuestionWidget(
  {JsonItems? question,
  String? collectionId,
  String? collectionCode,
  String? hintText,
  String? optionCode,
  List&lt;Options&gt;? options,
  bool? isParentWidget,
  List&lt;File&gt;? imageList,
  PageStorageKey? pageStorageKey}) {
      if (question?.type == QuestionTypeConstant.kText) {
         return TextFieldQuestionWidget(
         question: question!,
         hintText: hintText!,
       );
      } else if (question?.type == QuestionTypeConstant.kDate) {
        return DatePickerQuestionWidget(
        question: question!,
       );
      } else if (question?.type == QuestionTypeConstant.kSelection) {
     
     if (question?.renderType == QuestionTypeConstant.kDropdown &amp;&amp;
      !question!.multiple!) {
     return DropDownQuestionWidget(
      question: question,
      options: options,
      key: pageStorageKey,
    );
    } else if ((question?.renderType == QuestionTypeConstant.kDropdown &amp;&amp;
          question!.multiple!) ||
         question?.renderType == QuestionTypeConstant.kTable) {
         return MultiSelectDropDownQuestionWidget(
         question: question!,
      );
    } else if (question?.renderType == QuestionTypeConstant.kSelectionButton &amp;&amp;
      question?.code != 'active') {
          return SelectionButtonQuestionWidget(
          question: question!,
     );
    } else if (question?.renderType == QuestionTypeConstant.kCheckBox) {
    return QtCheckBox(
      question: question!,
      );
    } else {
      return Text('#${question?.type}');
    }
  } else if (question?.type == QuestionTypeConstant.kNumber) {
  return NumberTextFieldQuestionWidget(
    question: question!,
  );
  } else if (question?.type == QuestionTypeConstant.kHeading) {
    return HeadingQuestionWidget(question: question!);
  } else if (question?.type == QuestionTypeConstant.kPhoto) {
  return PhotosQuestionWidget(
       question: question!,
       imageList: imageList,
      );
      } else {
  return Text('#${question?.type}');
     }
  }
  </code></pre>