Javascript 如何在滚动视图中从项目列表中选择中心项目

Javascript 如何在滚动视图中从项目列表中选择中心项目,javascript,reactjs,listview,react-native,scrollview,Javascript,Reactjs,Listview,React Native,Scrollview,我在我的应用程序中有两个滚动视图,从两个滚动视图中,我应该分别选择一个显示在滚动中心的项目,然后继续代码中的下一个活动 那么我该怎么做呢?是否有任何道具可以选择列表中的中心项目 这是我的js文件,其中显示了2个滚动视图: import React,{Component}来自'React'; 从“react native”导入{图像、文本、视图、无反馈触摸、动画}; 从“react native router flux”导入{Actions}; 从“/TeamScroll”导入TeamScrol

我在我的应用程序中有两个滚动视图,从两个滚动视图中,我应该分别选择一个显示在滚动中心的项目,然后继续代码中的下一个活动

那么我该怎么做呢?是否有任何道具可以选择列表中的中心项目

这是我的js文件,其中显示了2个滚动视图:

import React,{Component}来自'React';
从“react native”导入{图像、文本、视图、无反馈触摸、动画};
从“react native router flux”导入{Actions};
从“/TeamScroll”导入TeamScroll;
const a=require('./Images/over3_selected.png');
const b=require('./Images/over3.png');
const c=require('./Images/over5_selected.png');
const d=require('./Images/over5.png');
const e=require('./Images/over10_selected.png');
常量f=require('./Images/over10.png');
类ChallengeScreen扩展组件{
状态={
三:错,
五:错,
十:错
}
组件willmount(){
this.slide1=新的动画.Value(0);
this.slide2=新的动画.Value(0);
this.slide3=新的动画.Value(0);
这个。ball1();
这个。ball2();
这个.ball3();
}
ball1(){
时间(
这是幻灯片1{
延误:100,
toValue:-140,
持续时间:700,
}
).start();
}
ball2(){
时间(
这是幻灯片2{
延误:200,
toValue:-160,
持续时间:900,
}
).start();
}
ball3(){
时间(
这张幻灯片3{
延误:300,
toValue:-180,
持续时间:1100,
}
).start();
}
render(){
返回(
选择你的团队
你的对手
结束
playFunc(3,this.props.challenge)}
onPressIn={()=>{
this.setState({threePressed:true});
}}
onPressOut={()=>{
this.setState({threePressed:false});
}}
>
playFunc(5,this.props.challenge)}
onPressIn={()=>{
this.setState({fivePressed:true});
}}
onPressOut={()=>{
this.setState({fivePressed:false});
}}>
playFunc(10,this.props.challenge)}
onPressIn={()=>{
this.setState({tenPressed:true});
}}
onPressOut={()=>{
this.setState({tenPressed:false});
}}>
);
}
}
函数playFunc(num,param){
如果(num==3&¶m===Computer){
Actions.screen4();
}
else if(num==5&¶m===Computer){
Actions.screen4();
}
else if(num==10&¶m===Computer){
Actions.screen4();
}
否则如果(num==3&¶m===Team){
Actions.screen3();
}
否则如果(num==5&¶m===Team){
Actions.screen3();
}
否则如果(num==10&¶m===Team'){
Actions.screen3();
}
}
常量样式={
视图样式:{
flexDirection:'行',
justifyContent:“灵活启动”
},
背景风格:{
弹性:1,
宽度:未定义,
高度:未定义,
flexWrap:“wrap”,
},
选择TeamTextStyle:{
textAlign:'中心',
玛金托普:80,
尺寸:20,
颜色:'白色',
fontFamily:“瑞士Cond黑色斜体”,
变换:[{旋转:'-14deg'}]
},
乐队风格:{
玛金托普:-10,
resizeMode:'拉伸',
宽度:380,
身高:150,
},
对手风格:{
textAlign:'中心',
玛金托普:-10,
尺寸:20,
颜色:'白色',
fontFamily:“瑞士Cond黑色斜体”,
变换:[{旋转:'-15deg'}]
},
乐队风格:{
resizeMode:'拉伸',
玛金托普:-10,
宽度:380,
身高:150,
},
夸张风格:{
textAlign:'中心',
底部:10,
尺寸:20,
颜色:'白色',
fontFamily:“瑞士Cond黑色斜体”,
变换:[{旋转:'-15deg'}]
},
超过3种类型:{
flexDirection:'行',
alignItems:'flex start',
宽度:80,
身高:80,
排名:170,
左:70,
},
超过5种款式:{
flexDirection:'行',
对齐项目:“居中”,
宽度:80,
身高:80,
底部:-170,
左:70
},
超过100种款式:{
flexDirection:'行',
对齐项目:“柔性端”,
宽度:80,
身高:80,
排名:170,
右:-70
}
};

导出默认ChallengeScreen我已经把它整理好了,我满足了所有这些要求,为此我使用了一个react本机模块

react原生卡传送带

我可以控制屏幕上出现的元素数量,它也可以通过动画滚动,我还可以使用我添加的每个图像的索引进行选择

有关snap carousel的详细说明,请选中此选项:

我只通过使用它更改了我的teamscroll组件,我还可以将一些道具传递给我应用程序中的其他文件

这是我使用snap carousel的TeamScroll.js文件

import React,{Component}来自'React';
从“react native”导入{View,Image,Dimensions};
从“react native snap Carousel”导入转盘;
const{height,width}=Dimensions.get('window');
类TeamScroll扩展组件{
render(){
返回(
);
}
}
常量样式={
标识样式:{
宽度:宽度/3,
高度:宽度/3
}
};

导出默认滚动条你也可以分享TeamScroll组件吗?@muhammed basil yep我已经分享过了