Android 反转平面列表

Android 反转平面列表,android,reactjs,react-native,Android,Reactjs,React Native,我目前正在为android开发一个react原生应用程序,并且可以访问新的平面列表。它有一些非常需要的特性。但是,我的listview是使用react native Inversable scroll视图反转的。这似乎对FlatList不起作用。滚动未正确反转 有人知道如何反转平面列表吗?或者,如何加载平面列表,然后在用户未注意到的情况下强制滚动到底部?我自己强制向下滚动的尝试经常会延迟。render(){ render() { const messages = this.props.messa

我目前正在为android开发一个react原生应用程序,并且可以访问新的平面列表。它有一些非常需要的特性。但是,我的listview是使用react native Inversable scroll视图反转的。这似乎对FlatList不起作用。滚动未正确反转

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

render(){
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>)
const messages=this.props.messages.reverse(); 返回( ); } _keyExtractor=(项,索引)=>item.id+''+索引; _renderItem=({item})=>( )

享受它)

如其他答案中所述,目前最好的方法是对平面列表的包含视图应用一个转换来反转它

return (
    <View style={{ transform: [{ scaleY: -1 }] }} >
        <FlatList
            renderItem={this._renderItem}
            ...
        />
    </View>
);
返回(
);
然后对每个列表项应用相同的转换,以确保它们正确地重新定向

_renderItem = (info) => {
    return (
        <View style={{ transform: [{ scaleY: -1 }] }}>
            {this.props.renderItem(info)}
        </View>
    );
}
\u renderItem=(info)=>{
返回(
{this.props.renderItem(信息)}
);
}
我已经编写了一个软件包来实现这一点,您所需要做的就是使用它来代替标准的
FlatList
组件,并传递
inversed
属性


现在,这是FlatList中的开箱即用

只需使用:

<FlatList
  inverted
  data=...
  renderItem=...
/>

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


如果您需要在底部显示最后一项,只需反转您在
数据
道具中提供的数组即可。

!谢谢ББПааа:-)我想知道您是否对Android功能有任何评论?我们在生产聊天中使用了此功能,Huwaii荣誉8手机上的列表不起作用,但大多数其他手机上的列表都可以。请注意,您应该调用
this.props.messages.slice().reverse()
,因为
.reverse()
会在某些地方修改列表,导致状态、redux等问题。这是可行的,但我认为,这是一个糟糕的做法,同时需要获取更多的数据列表这是魔术!!为我解决了这么多问题。此外,如果数据的格式已经正确,则不需要反转()数据。有没有关于如何反转拉动以随内容一起刷新的想法?在聊天应用程序中,您需要在顶部加载早期消息。使用此解决方案,FlatList的onRefresh将在底部添加RefreshControl。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能无效。-@你对此持肯定态度吗?我一直在我自己的应用程序中使用它,还没有完全测试过,但经过简单的检查,它看起来像是位于顶部的RefreshControl。如果真的是这样,它被添加到底部,我没有任何关于如何翻转它的好主意。经过一些测试后我会考虑的。@brunopers谢谢你的提示,答案经过编辑,包括有关修复的技术细节的信息。非常感谢,我可以用你的建议来rtl我的水平列表。感谢完美的描述。非常感谢。这将导致糟糕的用户体验。根本不是,这取决于你想做什么。如果你在开发聊天应用,那么你救了我的命,