我在React Native中创建了一个TextInput
,
但我希望标签在isFocused
或填充一些值时具有动画:
如果value为null或空,则标签必须在输入内,否则标签必须移动到输入外并带有动画。
我的代码:
export default function InputBox(props) {
return (
<View style={styles.container}>
<Text style={styles.label}>{props.label}</Text>
<TextInput
style={styles.input}
autoCapitalize="none"
defaultValue={props.defaultValue}
onChangeText={props.onChangeText}
keyboardType={props.keyboardType}
editable={props.editable}
/>
</View>
);
}
款式:
const styles = StyleSheet.create({
container: {
marginBottom: 20,
backgroundColor: COLORS.WHITE,
paddingTop: 5,
paddingHorizontal: 10,
borderWidth: 1,
borderColor: COLORS.GREY_BORDER,
borderRadius: 2,
},
icon: {
width: 40,
justifyContent: 'center',
alignItems: 'center',
},
input: {
fontFamily: FONT_FAMILY.primaryMedium,
fontSize: 13,
height: 35,
color: COLORS.BLACK,
},
label: {
fontFamily: FONT_FAMILY.primary,
color: COLORS.GREY,
fontSize: 10,
},
});
2条答案
按热度按时间plicqrtu1#
如果你想制作你自己的动画,你可以将标签Text Package 到一个Animated.View组件中,给予动画。
试试这个:
juzqafwq2#
答案是好的,但是在这种情况下你可能不需要useEffect,它可以被重构为