Percentage не работает с элементом визуализации FlatList, если для параметра horizontal установлено значение true

Я хотел бы использовать ширину экрана в элементе рендеринга horizontal FlatList. Однако это не работает должным образом. Когда horizontal ложно, процентное значение работает. Но когда horizontal истинно, процентное значение не работает.

class App extends React.Component {
  _renderItem = ({ item }) => {
    return (
      <View
        style={{
          width: '100%',
          height: 100,
        }}>
        <Text>{item.key}</Text>
      </View>
    );
  };

  render() {
    return (
      <View style={styles.container}>
        <FlatList
          data={[{ key: 1 }, { key: 2 }, { key: 3 }]}
          renderItem={this._renderItem}
          horizontal={true}
        />
      </View>
    );
  }
}

Перекусить, когда FlatList расположен горизонтально

Закусочная ссылка, когда FlatList НЕ горизонтален


person Kakar    schedule 27.01.2018    source источник


Ответы (1)


Думаю, я помню, как кто-то упоминал нечто подобное. Здесь можно использовать размеры. См. Здесь: https://snack.expo.io/H1-wnC5HM

Я лучше решаю сгибанием или процентом, но хорошо.

person sfratini    schedule 28.01.2018
comment
Да, я думаю, это единственный способ сделать это. Спасибо. - person Kakar; 31.01.2018
comment
Разве нет способа с процентами? Я имею в виду, что если контейнер не умещается на весь экран, это не сработает, поскольку родительский элемент не будет иметь правильную ширину (не равную ширине экрана). - person cglacet; 28.07.2020
comment
В некоторых случаях процент ширины действительно работает. Это было характерно только для прокрутки. И если это не сработает, вы всегда можете использовать опору onLayout для View, которая даст вам ширину родительского элемента, и вы можете использовать это значение для установки стиля дочернего элемента. Если это вам не поможет, задайте вопрос и разместите ссылку - person sfratini; 30.07.2020