首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反转FlatList

反转FlatList
EN

Stack Overflow用户
提问于 2017-04-14 02:29:53
回答 3查看 19.5K关注 0票数 29

我目前正在开发一款适用于安卓的react原生应用程序,并且可以访问新的FlatList。它有一些非常需要的功能。但是,我的listview是使用react-native-invertable-scroll-view反转的。这在FlatList中似乎不能正常工作。滚动未正确反转。

有人知道如何反转FlatList吗?或者如何加载Flatlist,然后在用户不注意的情况下强制滚动到底部?我自己强制向下滚动的尝试经常被延迟。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-08 07:48:24

代码语言:javascript
复制
render() {
const messages = this.props.messages.reverse();

return (
  <FlatList
    renderItem={this._renderItem}
    data={ messages }
    keyExtractor={this._keyExtractor}
    style={{  transform: [{ scaleY: -1 }] }}
  />
); }

_keyExtractor = (item, index) => item.id+''+index;

_renderItem = ({item}) => (
<View style={{ transform: [{ scaleY: -1 }]}}>
  <ChatItem />
</View>)

享受它)

票数 30
EN

Stack Overflow用户

发布于 2017-10-10 00:16:57

这在FlatList中是开箱即用的!

只需使用:

代码语言:javascript
复制
<FlatList
  inverted
  data=...
  renderItem=...
/>

这会导致第一个项目出现在列表的底部,列表从底部开始显示第一个项目。

如果您需要在底部显示最后一项,只需反转您在data属性中提供的数组。

票数 86
EN

Stack Overflow用户

发布于 2017-06-15 06:24:55

正如在其他答案中所描述的,目前最好的方法是将转换应用于FlatList的包含视图,以反转它。

代码语言:javascript
复制
return (
    <View style={{ transform: [{ scaleY: -1 }] }} >
        <FlatList
            renderItem={this._renderItem}
            ...
        />
    </View>
);

然后对每个列表项应用相同的转换,以确保它们被正确地重定向。

代码语言:javascript
复制
_renderItem = (info) => {
    return (
        <View style={{ transform: [{ scaleY: -1 }] }}>
            {this.props.renderItem(info)}
        </View>
    );
}

我已经编写了一个包来实现这一点,您所需要做的就是使用它来代替标准的FlatList组件,并传递inverted属性。

https://www.npmjs.com/package/react-native-invertible-flat-list

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43399343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档