【问题标题】:How to render gender select view like this - React Native如何呈现这样的性别选择视图 - React Native
【发布时间】:2020-03-14 13:46:22
【问题描述】:

我想知道如何呈现这样的性别选择视图...

单击男性后,我想渲染黄色图像(选中),单击女性后,我想将男性图像设为默认值,将女性图像设为黄色图像(选中)。

注意 - 我有 4 张单独的图片

例如 - Male_Checked / Male_Unchecked / Female_Checked / Female_Unchecked (PNG)

【问题讨论】:

标签: javascript android ios react-native


【解决方案1】:

您可以编写一个函数,根据所选值返回图像,如下所示。

getImageForGender(gender) {

    if (gender == this.state.selectedGender) {
        return (gender == "male") ? Images.Male_Checked : Images.Female_Checked;
    }
    else {
        return (gender == "male") ? Images.Male_UnChecked : Images.Female_UnChecked;
    }
}

你可以使用这个函数来分配 ImageView 中的图像,例如:

<Image source={{getImageForGender("male")}} />
<Image source={{getImageForGender("female")}} />

【讨论】:

    【解决方案2】:

    我找到了答案!

    {this.state.male_checked == 0 ? (
                  <TouchableOpacity
                    onPress={() => {
                      this.setState({male_checked: 1, female_checked: 0});
                    }}
                    style={styles.btn}>
                    <Image style={styles.img} source={Images.BMI_MALE} />
                    <Text>Male</Text>
                  </TouchableOpacity>
                ) : (
                  <TouchableOpacity
                    onPress={() => {
                      this.setState({male_checked: 0});
                    }}
                    style={styles.btn}>
                    <Image style={styles.img} source={Images.BMI_MALE_CHECKED} />
                    <Text>Male</Text>
                  </TouchableOpacity>
                )}
    
                {this.state.female_checked == 0 ? (
                  <TouchableOpacity
                    onPress={() => {
                      this.setState({female_checked: 1, male_checked: 0});
                    }}
                    style={styles.btn}>
                    <Image style={styles.img} source={Images.BMI_FEMALE} />
                    <Text>Female</Text>
                  </TouchableOpacity>
                ) : (
                  <TouchableOpacity
                    onPress={() => {
                      this.setState({female_checked: 0});
                    }}
                    style={styles.btn}>
                    <Image style={styles.img} source={Images.BMI_FEMALE_CHECKED} />
                    <Text>Female</Text>
                  </TouchableOpacity>
                )}
    

    【讨论】:

    • 您可能想用图标替换您的图像。这个React Native Vector Icon 为您提供了一些包含许多不同图标的集合。您可以通过将style 传递给图标组件来自定义颜色、大小等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    相关资源
    最近更新 更多