react-native-hr 패키지를 사용해 보았습니다 -나에게도, Android 나 iOS에서도 작동하지 않습니다.
다음 코드는 끝에 세 개의 점을 렌더링하기 때문에 적합하지 않습니다.
<Text numberOfLines={1}}>
______________________________________________________________
</Text>
react-native-hr 패키지를 사용해 보았습니다 -나에게도, Android 나 iOS에서도 작동하지 않습니다.
다음 코드는 끝에 세 개의 점을 렌더링하기 때문에 적합하지 않습니다.
<Text numberOfLines={1}}>
______________________________________________________________
</Text>
답변:
하단 테두리가있는 빈 뷰를 간단히 사용할 수 있습니다.
<View
style={{
borderBottomColor: 'black',
borderBottomWidth: 1,
}}
/>
borderBottomWidth: StyleSheet.hairlineWidth
:
여백을 사용하여 선의 너비를 변경하고 중앙에 배치 할 수 있습니다.
import { StyleSheet } from 'react-native;
<View style = {styles.lineStyle} />
const styles = StyleSheet.create({
lineStyle:{
borderWidth: 0.5,
borderColor:'black',
margin:10,
}
});
여백을 동적으로 제공하려면 Dimension width를 사용할 수 있습니다.
<View style = {styles.lineStyle} />
사이에 아무것도 없기 때문에 당신은 또한 할 수 있습니다 ;-)
styles.lineStyle
은 const styles = StyleSheet.create({ lineStyle: ... });
여기에 해당합니다 . 당신 lineStyle = { ...}
은 문제를 일으킬 것입니다. 있는 완벽한 솔루션이 styles.lineStyle
될 수있다 const styles = StyleSheet.create({ lineStyle: { borderWidth: 0.5, borderColor: 'black', margin: 10 } });
.
lineStyle
StyleSheet 안에 넣었다고 가정합니다 .
flexbox
선 중앙에 텍스트가 있어도 속성이 있는 구분 기호를 그릴 수있었습니다 .
<View style={{flexDirection: 'row', alignItems: 'center'}}>
<View style={{flex: 1, height: 1, backgroundColor: 'black'}} />
<View>
<Text style={{width: 50, textAlign: 'center'}}>Hello</Text>
</View>
<View style={{flex: 1, height: 1, backgroundColor: 'black'}} />
</View>
이렇게 했어요. 도움이 되었기를 바랍니다
<View style={styles.hairline} />
<Text style={styles.loginButtonBelowText1}>OR</Text>
<View style={styles.hairline} />
스타일 :
hairline: {
backgroundColor: '#A2A2A2',
height: 2,
width: 165
},
loginButtonBelowText1: {
fontFamily: 'AvenirNext-Bold',
fontSize: 14,
paddingHorizontal: 5,
alignSelf: 'center',
color: '#A2A2A2'
},
이것은 오늘 업데이트 된 React Native (JSX) 코드입니다.
<View style = {styles.viewStyleForLine}></View>
const styles = StyleSheet.create({
viewStyleForLine: {
borderBottomColor: "black",
borderBottomWidth: StyleSheet.hairlineWidth,
alignSelf:'stretch',
width: "100%"
}
})
둘 중 하나 alignSelf:'stretch'
또는 width: "100%"
둘 다 사용할 수 있습니다 .
borderBottomWidth: StyleSheet.hairlineWidth
여기 StyleSheet.hairlineWidth
에 가장 얇은 것이 있습니다.
borderBottomWidth: 1,
선의 두께를 늘리기 위해 등등.
재사용 가능한 Line
구성 요소를 만드는 것이 저에게 효과적 이었습니다.
import React from 'react';
import { View } from 'react-native';
export default function Line() {
return (
<View style={{
height: 1,
backgroundColor: 'rgba(255, 255, 255 ,0.3)',
alignSelf: 'stretch'
}} />
)
}
이제 Line
어디서나 가져 와서 사용할 수 있습니다.
<Line />
import { View, Dimensions } from 'react-native'
var { width, height } = Dimensions.get('window')
// Create Component
<View style={{
borderBottomColor: 'black',
borderBottomWidth: 0.5,
width: width - 20,}}>
</View>
기본 요소 구분선을 사용할 수 있습니다.
다음과 함께 설치하십시오.
npm install --save react-native-elements
# or with yarn
yarn add react-native-elements
import { Divider } from 'react-native-elements'
그런 다음 다음으로 이동하십시오.
<Divider style={{ backgroundColor: 'blue' }} />
<Divider />
구성 요소 만 사용하는 경우 과도 하지만 라이브러리를 사용하여 간단한 버튼, 검색 창 등의 스타일을 지정하는 데 시간을 절약해야합니다. 앱에 대해 할 수있는 모든 작업을 확인하세요. react-native-elements.github.io/react-native-elements
아마도 다음과 같이 react-native-hr을 사용해보십시오.
<Hr lineColor='#b3b3b3'/>
import {Dimensions} from 'react-native'
const { width, height } = Dimensions.get('window')
<View
style={{
borderBottomColor: '#1D3E5E',
borderBottomWidth: 1,
width : width ,
}}
/>
이것이 내가 중간에 수평선과 텍스트로 구분선을 해결 한 방법입니다.
<View style={styles.divider}>
<View style={styles.hrLine} />
<Text style={styles.dividerText}>OR</Text>
<View style={styles.hrLine} />
</View>
그리고 이것을위한 스타일 :
import { Dimensions, StyleSheet } from 'react-native'
const { width } = Dimensions.get('window')
const styles = StyleSheet.create({
divider: {
flexDirection: 'row',
alignItems: 'center',
marginTop: 10,
},
hrLine: {
width: width / 3.5,
backgroundColor: 'white',
height: 1,
},
dividerText: {
color: 'white',
textAlign: 'center',
width: width / 8,
},
})
흰색과 같은 단색 배경이있는 경우 다음이 해결책이 될 수 있습니다.
<View style={container}>
<View style={styles.hr} />
<Text style={styles.or}>or</Text>
</View>
const styles = StyleSheet.create({
container: {
flex: 0,
backgroundColor: '#FFFFFF',
width: '100%',
},
hr: {
position: 'relative',
top: 11,
borderBottomColor: '#000000',
borderBottomWidth: 1,
},
or: {
width: 30,
fontSize: 14,
textAlign: 'center',
alignSelf: 'center',
backgroundColor: '#FFFFFF',
},
});