如何使 Horizo​​ntal SectionList RIGHT to LEFT Scroll react-native

How to make Horizontal SectionList RIGHT to LEFT Scroll react-native

我想做一个网店,我需要一个包含我的产品的React Native中的水平部分列表。这是我的代码。请帮助我从右到左 scrolling.clothes 是一个包含我的产品详细信息的对象数组。

    export default class MySectionList extends Component{
        render(){
            return(
               <SectionList
                   sections={Clothes} 
                   horizontal={true}
                   showsHorizontalScrollIndicator={false}
                   renderItem={({item})=>(
                       <View>
                           <Image source={{uri:"item.image",width:'65%',height:200}}/>
                           <Text>{item.name}</Text>
                           <Text>{item.price}</Text>
                       </View>
                  )}
                  renderSectionHeader={({section})=>(
                       <Text>{section.title}</Text>)}
              />
       )
    }
}

这个部分列表从左到右滚动,我需要另一个从左到右滚动。

如果您的应用语言是从右到左,请将应用支持设置为使用 rtl

I18NManager.allowRTL(true) 
I18NManager.forceRTL(true)  

使分区列表或平面列表从右向左滚动,否则不会发生这种情况。还有另一种方法可以解决这个问题,但它不是系统的!喜欢使用 inverted 道具或 direction 风格。

我通过添加一些样式来解决这个问题。不幸的是,I18NManager 无法解决我的问题,所以我使用了 transform 样式,并且对于我应用的所有部分列表,我都应用了 transform: [{ scaleX: -1 }] 并且由于部分列表中的项目将被反转,我再次将这种样式应用于项目包装器。像这样:

    render(){
            return(
               <SectionList
                   sections={Clothes} 
                   horizontal={true}
                   style={{ transform: [{ scaleX: -1 }] }}
                   showsHorizontalScrollIndicator={false}
                   renderItem={({item})=>(
                       <View style={{ transform: [{ scaleX: -1 }] }}>
                           <Image source={{uri:"item.image",width:'65%',height:200}}/>
                           <Text>{item.name}</Text>
                           <Text>{item.price}</Text>
                       </View>
                  )}
                  renderSectionHeader={({section})=>(
                       <Text>{section.title}</Text>)}
              />
           )
       }
    }

这是一个 hacky 方法,但我没有找到解决我的问题的另一种方法。

希望对您有所帮助