默认下划线在 React Native 的 TextInput 中不可见

Posted

技术标签:

【中文标题】默认下划线在 React Native 的 TextInput 中不可见【英文标题】:Default underline not visible in TextInput in React native 【发布时间】:2019-03-03 00:47:03 【问题描述】:

我是 React 原生开发的新手。在我的应用程序中,我有登录页面,在这个登录页面中有两个文本输入。在此文本输入中没有下划线。我尝试了很多方法,但没有得到下划线。这里我的要求是需要输入文本的下划线。那么如何得到这个下划线呢?

这是我的登录表单代码。

import React, Component from 'react';
import StyleSheet, Text, View,TextInput,TouchableOpacity from 'react-native';

export default class App extends Component 
  render() 
    return (
      <View style=styles.container>
        <Text style=styles.welcome>SEDC</Text>
      <TextInput placeholder="Acct No/User Id" style=styles.textInput multiline=true></TextInput>
      <TextInput placeholder="Password" style=styles.textInput></TextInput>
      <TouchableOpacity style=styles.btn onPress=this.login><Text>Log In</Text></TouchableOpacity>
      </View>
    );
  

  login=()=>
    alert("testing......");
    // this.props.navigation.navigate('Second');



const styles = StyleSheet.create(
  container: 
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  ,
  welcome: 
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  ,

  textInput: 
    alignSelf: 'stretch',
    padding: 10,
    marginLeft: 50,
    borderBottomColor:'#000',
    margin:5,
    marginRight:50,
    // backgroundColor: '#000',
,
  btn:
    alignSelf: 'stretch',
    backgroundColor: '#01c853',
    padding: 10,
    margin:10,
    marginLeft: 100,
    marginRight:100,
    alignItems: 'center',

);

这是我的代码的输出。

我尝试过使用borderBottomColor:'#000',但没有工作..所以请指导我如何做到这一点

提前致谢...

【问题讨论】:

您是否尝试过使用 underlineColorandroid 属性。 谢谢@DheerajChaudhary 它工作完美 【参考方案1】:

除了设置底部边框颜色之外,您还需要设置底部边框“宽度”。

borderBottomWidth 属性定义沿 textInput 组件底部边缘的边框的粗细(以像素为单位)。因此,例如,您可以在 textInput 的底部应用黑色边框,厚度为 2 像素,方法是对样式进行以下调整:

textInput: 
    alignSelf: 'stretch',
    padding: 10,
    marginLeft: 50,
    borderBottomColor:'#000',
    margin:5,
    marginRight:50,

    borderBottomColor: '#000', // Add this to specify bottom border color
    borderBottomWidth: 2     // Add this to specify bottom border thickness

【讨论】:

谢谢,它正在使用..borderBottomWidth:1。但不需要背景颜色 @rams 啊,对此感到抱歉-那里有轻微的错误输入,我的意思是在答案中还包括borderBottomColor 如果需要也可以指定。我刚刚更新 - 希望对您有所帮助! @Denny 是的,但是当给定borderBottomWidth:1时,与第二个textinput相比,获取第一行textinput行是粗颜色。你知道原因吗 您是否在两个 TextInput 组件上都设置了 underlineColorAndroid='transparent'【参考方案2】:

设置一下

underlineColorAndroid='black'

【讨论】:

【参考方案3】:

非常简单:我们需要在 TextInput 布局中传递我们的自定义样式,并完成在行下显示的工作 通过这种自定义样式,我们可以执行 2 个操作 a.我们可以加下划线 b.我们还可以为我们的文本输入字段使用框

   bottomBorder: 
marginLeft: 20,
marginRight: 20,
borderBottomColor: 'skyblue',//if we want only bottom line
borderBottomWidth: 2, // Add this to specify bottom border thickness &
//textDecorationLine: 'underline',
//borderColor:"skyblue",//if we want to show our TextInput field inside the box
//borderWidth:2 //use this to show width of border boxes
  

现在是时候将这个自定义样式放入我们的 TextInput 布局中了

<TextInput placeholder="Enter your Name "
      style= styles.bottomBorder
      onChangeText=(text) => 
        console.warn(text)
      
    />

【讨论】:

以上是关于默认下划线在 React Native 的 TextInput 中不可见的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native 中要求下划线

React-Native 自定义TextInput样式

React-Native 自定义TextInput样式

react-native中ios的TextInput下划线颜色

react native - android - Picker 有下划线

二React Native架构原理