使用中のposition:absolute
では、justifyContent
またはalignItems
を使用して要素を中央に配置できないようです。 marginLeft
を使用する回避策がありますが、寸法を使用してデバイスの高さと幅を検出しても、すべてのデバイスで同じように表示されるわけではありません。
bottom: {
position: 'absolute',
justifyContent: 'center',
alignItems: 'center',
top: height*0.93,
marginLeft: width*0.18,
},
bottomNav: {
flexDirection: 'row',
},
ビューの中央に配置する子をラップして、ビューを絶対にします。
<View style={{position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, justifyContent: 'center', alignItems: 'center'}}>
<Text>Centered text</Text>
</View>
Leftプロパティにデバイスの幅を2で割った値を指定し、中央に配置したい要素の半分を差し引くと、絶対アイテムを中央に配置できます。
たとえば、スタイルは次のようになります。
bottom: {
position: 'absolute',
left: (Dimensions.get('window').width / 2) - 25,
top: height*0.93,
}
alignItems: "center"
を使用して全角のView
を作成してから、目的の子を内部に挿入します。
import React from "react";
import {View} from "react-native";
export default class AbsoluteComponent extends React.Component {
render(){
return(
<View style={{position: "absolute", left: 0, right: 0, alignItems: "center"}}>
{this.props.children}
</View>
)
}
}
下部に配置されたコンポーネントにbottom: 30
などのプロパティを追加できます。
とても簡単です。 width
およびleft
プロパティにパーセンテージを使用します。例えば:
logo : {
position: 'absolute',
top : 50,
left: '30%',
zIndex: 1,
width: '40%',
height: 150,
}
width
が何であれ、left
は(100% - width)/2
と等しい