реагировать на нативную прокрутку scrollTo не работает должным образом с переключением содержимого - PullRequest
0 голосов
/ 27 сентября 2019

Я создаю приложение, которое имеет 6 различных вкладок, расположенных вертикально на экране.При нажатии на вкладку будет переключаться ее содержимое.

Я делаю скролл-просмотр, который бы подходил всем этим большим материалам.При нажатии на вкладку экран автоматически прокручивается до положения вкладки, поэтому содержимое может отображаться без необходимости прокрутки пользователем вниз.

enter image description here

Моя логика заключается в том, что при нажатии на вкладку запускается событие из этой вкладки TouchableOpacity, которая содержит положение вкладки на экране (пусть это называетсякак pageY).Затем сделайте setState, чтобы сделать toggle = true, и сделайте обратный вызов setState, скажем, если toggle = true, затем перейдите к pageY + текущей позиции экрана

 <TouchableOpacity
  onPress={evt => {
    let { pageY } = evt.nativeEvent;
    this.setState(
      {
        eToggle: !this.state.eToggle,
      },
      () => {
        if (this.state.eToggle) {
          this.scrollView.scrollTo({
            y: this.scrollY + pageY,
            animated: true,
          });
        } else {
          this.scrollView.scrollTo({
            y: 0,
            animated: true,
          });
        }
      }
    );
  }}>
  <Text style={{ color: 'black', fontSize: 24 }}>E Tab</Text>
</TouchableOpacity>

И у меня возникла проблема, заключающаяся в том, что прокрутка неработает правильно При нажатии на вкладку экран не прокручивается до этой позиции;это только прокрутить немного вниз.

Как будто что-то блокирует экран для прокрутки.

https://snack.expo.io/@rex_rau/scrollview

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...