【问题标题】:How to Give Different Styles to Same btn in scrollView in React native?如何在 React Native 中为 scrollView 中的相同按钮赋予不同的样式?
【发布时间】:2020-10-12 04:48:26
【问题描述】:

我正在创建一个滚动视图,在其中放置了一些按钮,并且随着 btns 滚动,我希望它们的不透明度发生变化,我在滚动视图中使用 flatList 来访问数据。这是我的代码。

<ScrollView style={styles.btnScroll}>
        <FlatList
         style={styles.listView}
         data={STATIC_LIST}
         renderItem={this.renderbtns}
         ListFooterComponent={() => (
              <View style={styles.bottomSpacing} />
         )}
         showsVerticalScrollIndicator={false}
         keyExtractor={item => item.id}
        />
</ScrollView>

& 用于 renderbtns :

  renderbtns = ({item}) => {
    return (
      <View>
        <TouchableOpacity>
          <Text style={styles.BtnText}>{item.name}</Text>
        </TouchableOpacity>
      </View>
    );
  };

我一次在 scrollView 中显示 5 个按钮,并且我希望第 1 和第 5 个 btn 到不透明度 0.2,第 2 和第 4 个 btn 到不透明度 0.5 和第 3 个 btn 到不透明度 1。

【问题讨论】:

    标签: react-native-flatlist react-native-scrollview


    【解决方案1】:

    您可以使用索引属性,然后检查索引并创建条件

    renderbtns = ({item, index}) => {
        const opacityCondition = () => {
          if (index === ????) {
            return 0.6
          }
          \\ make other conditions
          return 0.8
        }
        return (
          <View>
            <TouchableOpacity style={{opacity: opacityCondition(}}>
              <Text style={styles.BtnText}>{item.name}</Text>
            </TouchableOpacity>
          </View>
        );
      };

    【讨论】:

    • 我认为你误解了滚动视图中的 5 个 btn,我在滚动视图中有 100 个 btn,但一次只能显示 5 个,样式将应用于滚动视图的位置,而不是 btn 的索引,任何 btn谁将在滚动视图中到达该位置,具有该样式。
    • 总之,随着btn滚动,我需要的样式也相应地改变了。
    • 滚动视图中的onScroll={(e) =>e.nativeEvent.contentOffset.y}可以知道位置,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2019-07-21
    • 1970-01-01
    • 2017-04-07
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多