0

我在 React Native 中使用 SectionList 来显示从 URL 获取的一些 JSON 数据。

<SectionList
            sections = {this.state.dataSource}
            renderSectionHeader = {({section}) => <Text style={styles.TopicNameContainer}>{section.title}</Text>}
            renderItem = {({item}) => 
                <ScrollView style={{height: 50}} horizontal={true}>
                    <ImageBackground style={{width: '100%', height: '100%', justifyContent: 'flex-end'}} source={{ uri: 'http://localhost:1337' + item.ChapterImage.url }}>
                        <Text style={[styles.ChapterNameContainer, {backgroundColor: 'rgba(255, 255, 255, 0.5)', }]}>{item.ChapterName}</Text>
                    </ImageBackground>
                </ScrollView>}
            keyExtractor = {({id}, index) => id.toString()}
/>

使用上面的代码,它看起来就是这样;

章节标题 1

  • 第 1.1 节
  • 第 1.2 节

章节标题 2

  • 第 2.1 节

但是,我希望它如下所示;

章节标题 1

第 1.1 节 | 第 1.2 节

章节标题 2

第 2.1 节

上面的部分项目有水平滚动。

我已经尝试将 ScrollList 设置为,horizontal={true}但这样做是将整个内容变成水平滚动,但是,我不希望 Section Header 水平滚动。

更新:经过更多研究,人们建议在 SectionList 中使用 FlatList。我试过了,但它仍然垂直出现。

renderItem={({ item }) => (
  <FlatList
    style={{height: 50}} 
    horizontal={true}
    data={Array(item)}
    renderItem={({ item }) => 
    <View>
      <ImageBackground style={{width: '100%', height: '100%', justifyContent: 'flex-end'}} source={{ uri: 'http://localhost:1337' + item.ChapterImage.url }}>
         <Text style={[styles.ChapterNameContainer, {backgroundColor: 'rgba(255, 255, 255, 0.5)', }]}>{item.ChapterName}</Text>
      </ImageBackground>
    </View>
    }
    keyExtractor = {({id}, index) => id.toString()}
/>)}
4

1 回答 1

0

你应该试试flexdirection.View

            renderItem = {({item}) => 
                <View style={{ flexDirection: "row" }}>
                <ScrollView style={{height: 50, width: '50%' }} >
                    <ImageBackground style={{width: '100%', height: '100%', justifyContent: 'flex-end'}} source={{ uri: 'http://localhost:1337' + item.ChapterImage.url }}>
                        <Text style={[styles.ChapterNameContainer, {backgroundColor: 'rgba(255, 255, 255, 0.5)', }]}>{item.ChapterName}</Text>
                    </ImageBackground>
                </ScrollView> 
                <View>}
于 2019-07-24T02:14:17.690 回答