首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在React本地ScrollView中放大单个项

在React本地ScrollView中放大单个项
EN

Stack Overflow用户
提问于 2019-10-02 01:30:28
回答 1查看 34关注 0票数 0

我有一个这样的ScrollView:

代码语言:javascript
复制
        <ScrollView>
          {this.state.businessMerchants.map(merchant => (
            <Business
              merchant={merchant}
              key={merchant.id}
            />
          ))}
        </ScrollView>

通常有2-4个项目。

我想突出当前的最高项目,并让它占用更多的空间(也许10%?)。这个“最重要的项目”将在一个滚动列表中切换。

是否有一种更标准化的方法来做到这一点,或者我必须使用scrollEventThrottle和像这样的自定义函数?

伪码如下:

代码语言:javascript
复制
if((findHeightOfItem + padding) * multiple === itemPos) {
addSizeHere()
}

非常好奇什么是最好的/最具表现力的方式,在反应本地人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 05:26:01

步骤:

决定每个组件itemHeight

  • Apply onScroll的高度,得到当前滚动的高度scrolledHeight

  • Have,一个称为currentItemIndex的本地状态,它将在onScroll函数中决定,并将被计算为Math.floor(scrolledHeight / itemHeight)

  • Send isCurrentItem作为业务组件的支柱,所需样式取决于布尔isCurrentItem

  • I的值,这将建议您使用带有转换比例的动画视图

handleScroll = (e) => { const currentHeight = e.nativeEvent.contentOffset.y;const currentItemIndex = Math.floor(currentHeight / 100);this.setState({ currentItemIndex });}{this.state.businessMerchants.map(商户,索引) => ( )}

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

https://stackoverflow.com/questions/58194167

复制
相关文章

相似问题

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