Динамически обновлять тип клавиатуры в Flutter - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть поиск TextFied и панель вкладок, позволяющая искать по номеру или тексту.

Когда TabBar запущен / нажат, тип клавиатуры должен быть обновлен.

  • Слушатель, позволяющий определить тип, корректно срабатывает
  • Метод компоновки запускается, а текстовое поле перестраивается с помощью keyboardType

Но тип клавиатуры не обновляется

_handleTabSelection() {
    if (_tabController.indexIsChanging) {
      switch (_tabController.index) {
        case kNameIndex:
          _searchBy = RunnersSubscriptionsSearchBy.name;
          _keyboardType = TextInputType.text;

          break;
        case kTibibIndex:
          _searchBy = RunnersSubscriptionsSearchBy.tibib;
          _keyboardType = TextInputType.number;
          //_focus.unfocus();
          break;
      }
      setState(() {
        ;
      });
    }
  }

И панель поиска Build с TextField

_buildSearchBar() {
    return Container(
      color: Theme.of(context).secondaryHeaderColor,
      child: new Padding(
        padding: const EdgeInsets.all(5),
        child: new Card(
          child: new ListTile(
            contentPadding: EdgeInsets.only(left: 8, right: 0),
            leading: new Icon(Icons.search),
            title: new TextField(
              keyboardType: _keyboardType,
              focusNode: _focus,
              controller: _searchTextFieldEditingController,
              decoration: new InputDecoration(
                  hintText: _searchHintTextFromSearchType(_searchBy),
                  border: InputBorder.none),
            ),
            trailing: new IconButton(
              icon: new Icon(Icons.cancel),
              onPressed: () {
                _searchTextFieldEditingController.clear();
                //onSearchTextChanged('');
              },
            ),
          ),
        ),
      ),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...