当前位置: 首页 > 面试题库 >

在React Native中按下时更改按钮样式

葛学民
2023-03-14
问题内容

我希望我的应用程序中的按钮样式在按下时可以更改。做这个的最好方式是什么?


问题答案:

使用TouchableHighlight

这里是一个例子:

在此处输入图片说明

'use strict';

 import React, {
Component,
StyleSheet,
PropTypes,
View,
Text,
TouchableHighlight
} from "react-native";

export default class Home extends Component {
constructor(props) {
    super(props);
    this.state = { pressStatus: false };
}
_onHideUnderlay() {
    this.setState({ pressStatus: false });
}
_onShowUnderlay() {
    this.setState({ pressStatus: true });
}
render() {
    return (
        <View style={styles.container}>
            <TouchableHighlight
                activeOpacity={1}
                style={
                    this.state.pressStatus
                        ? styles.buttonPress
                        : styles.button
                }
                onHideUnderlay={this._onHideUnderlay.bind(this)}
                onShowUnderlay={this._onShowUnderlay.bind(this)}
            >
                <Text
                    style={
                        this.state.pressStatus
                            ? styles.welcomePress
                            : styles.welcome
                    }
                >
                    {this.props.text}
                </Text>
            </TouchableHighlight>
        </View>
    );
}
}

Home.propTypes = {
text: PropTypes.string.isRequired
};

const styles = StyleSheet.create({
container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#F5FCFF"
},
welcome: {
    fontSize: 20,
    textAlign: "center",
    margin: 10,
    color: "#000066"
},
welcomePress: {
    fontSize: 20,
    textAlign: "center",
    margin: 10,
    color: "#ffffff"
},
button: {
    borderColor: "#000066",
    borderWidth: 1,
    borderRadius: 10
},
buttonPress: {
    borderColor: "#000066",
    backgroundColor: "#000066",
    borderWidth: 1,
    borderRadius: 10
}
});


 类似资料:
  • 所以我有这些按钮(3叠6个,18个),我想实现的是当我按下其中一个按钮时: > 边框颜色 其他按钮将重置为其正常样式 但是我不想通过“isEnable”技巧禁用其他的(我只在这里找到了涉及isEnable的解决方案),我仍然希望它们被启用,我只是希望它们不要在按下时被我的自定义样式“突出显示”。 对于第一部分,也就是我在IBAction中所做的造型: 这一小部分只是一个按钮,但我想如果我有18个按

  • '导出默认函数 评级(道具){ 常量 [悬停,setHover] =使用状态(假); // 检查悬停状态常量 [com, setCom] = use 状态(假); //检查点击状态 }'我有五个评级按钮,我想在单击另一个按钮时取消单击已单击的按钮。通过点击我的意思是,当我点击其中一个按钮时,他们的样式主要改变为背景颜色,现在我希望当有人按下另一个评级时,我希望以前点击的按钮的样式恢复正常,新按下的

  • } 完整错误消息:

  • 我在一个HTML页面上有2个按钮组。每组3到4个按钮(使用引导程序的按钮)。我想使用Javascript在没有onclick的情况下更改点击时的颜色按钮。 用户将单击组1中的任何按钮(单击“将颜色改为绿色”时),然后单击组2中的按钮,而不取消选择组1中的按钮。 null null

  • 问题内容: 可以更改按钮功能吗? 例如 点击,再点击一次 我已经尝试过类似,但没有结果。 我设法使叠加工作并在其中插入所需的数据。但是没有找到任何可以帮助我的帖子。我正在使用react-bootstrap。这是我的代码。 问题答案: 您可以尝试使用状态来存储颜色。也许这会让您想到解决问题的方法: 这是一个小提琴。

  • 问题内容: 下面的代码正确返回该单元格: 但是在表视图中查找indexpath会崩溃: 我尝试了另一种方法,但是没有成功: 问题答案: 我不知道是否有简单的方法可以做到这一点。( 编辑: 实际上有。请查看@mustafa的第二个解决方案。)一种解决方法是将按钮的标签设置为in ,然后可以仅访问按钮的标签以找出按钮所属的行。 警告: 此解决方法很脆弱。如果您允许在不调用的情况下从表中添加或删除行,则