默认下划线在 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 属性。除了设置底部边框颜色之外,您还需要设置底部边框“宽度”。
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中ios的TextInput下划线颜色