Cómo cambiar el estilo de TextInput marcador de posición en React Native?
¿Hay una manera de establecer fontStyle: 'italic'
sólo para el placeholder
de placeholder
de TextInput en React Native?
Mirando aquí a la documentación parece que sólo se puede establecer un marcador de posición y placeholderTextColor.
- React-native: comando no encontrado
- React Native Android: El método no reemplaza ni implementa un método desde un supertipo
- ReactNative - Cómo obtener la instancia de actividad a partir de la versión 0.29
- Reaccionar-responder a cambio nativo dinámicamente
- ¿Cómo incluir archivos '.jar' en React-native para Android?
- Exponiendo puertos en Android con React-Native
- ¿Cómo puedo implementar Pinning del certificado SSL mientras uso React Native
- Error: Watchman no se encontró en PATH en ventanas
- ¿Reacciona la compilación nativa de JavaScript en Java para Android?
- React-native android assembleDebug log: Archivo de código fuente desconocido: warning: string 'catalyst_debugjs' no tiene traducción por defecto
- Com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: No se pudo instalar todo
- Reaccionar la creación de perfiles nativos. Systrace no muestra JS y Native Modules Thread
- ¿Cómo puedo "sacudir" un dispositivo Android dentro del emulador de Android para que aparezca el menú dev para depurar mi aplicación React Native
Mejorando la respuesta de Daniel para una solución más genérica
class TextInput2 extends Component { constructor(props) { super(props); this.state = { placeholder: props.text.length == 0 } this.handleChange = this.handleChange.bind(this); } handleChange(ev) { this.setState({ placeholder: ev.nativeEvent.text.length == 0 }); this.props.onChange && this.props.onChange(ev); } render() { const { placeholderStyle, style, onChange, ...rest } = this.props; return <TextInput {...rest} onChange={this.handleChange} style={this.state.placeholder ? [style, placeholderStyle] : style} /> } }
Uso:
<TextInput2 text={this.state.myText} style={{ fontFamily: "MyFont" }} placeholderStyle={{ fontFamily: "AnotherFont", borderColor: 'red' }} />
Puede crear esta funcionalidad usted mismo. El marcador de posición se muestra cuando la entrada está vacía, por lo que puede comprobar su estado y cambiar el fontStyle en consecuencia:
<TextInput onChange={txt => this.setState({enteredText: txt})} fontStyle={this.state.enteredText.length == 0 ? 'italic' : 'normal'} style={style.input} />
Por alguna razón esto no parece funcionar con fontFamily = System. Así que usted tiene que especificar explícitamente el fontFamily.
Contenido y placeHolder de TextInput utilizan un estilo común, por lo que puede establecer fontWeight y fontSize para placeHolder. Por otro lado, puede establecer la propiedad placeholderTextColor
para TextInput
- Mostrar el teclado virtual en AlertDialog con un WebView dentro (Android)
- Reproducción tardía de la webview de Android