官术网_书友最值得收藏!

Touchable opacity

When a button needs a custom look, it quickly seems like you need a better alternative. This is where TouchableOpacity comes into play. It serves every purpose when inner content needs to become touchable. Hence, we will make our own button and style it as we like:

class LikeCounter extends React.Component {
state = {
likeCount: 0
}
like = () => this.setState({likeCount: this.state.likeCount + 1})
unlike = () => this.setState({likeCount: this.state.likeCount - 1})

render = () => (
<View style={styles.container}>
<TouchableOpacity
style={styles.button}

onPress={this.unlike}
>
<Text>Unlike</Text>
</TouchableOpacity>
<Text style={styles.text}>{this.state.likeCount}</Text>
<TouchableOpacity
style={styles.button}

onPress={this.like}
>
<Text>Like</Text>
</TouchableOpacity>
</View>
);
}

Some example styles follow. We will dig further into styles in Chapter 3, Styling Patterns:

const styles = StyleSheet.create({
container: {
flexDirection: 'row',
paddingTop: 20,
paddingLeft: 20
},
button: {
alignItems: 'center', // horizontally centered
justifyContent: 'center', // vertically centered
backgroundColor: '#DDDDDD',
padding: 20
}
,
text: {
fontSize: 45
}
});

The button's contents are centered vertically and horizontally. We have a custom gray background color and padding inside of the button. Padding is the space from the children to the border of the component.

Now that we know about these simple components, we are ready to proceed further and explore how forms are built and how to handle more complicated use cases.

主站蜘蛛池模板: 舟山市| 宁乡县| 岱山县| 谢通门县| 叙永县| 仪陇县| 丹东市| 股票| 荣昌县| 图木舒克市| 邢台县| 依兰县| 临泽县| 榆中县| 阜康市| 鄂托克前旗| 双柏县| 鸡西市| 横山县| 连州市| 兖州市| 曲阳县| 漯河市| 宁远县| 金山区| 涡阳县| 阿鲁科尔沁旗| 河南省| 潞西市| 阜城县| 博兴县| 连南| 新绛县| 琼结县| 陈巴尔虎旗| 亳州市| 屏东市| 哈尔滨市| 盐池县| 商南县| 汉寿县|