私も勉強中ですが、私は useWindowDimensions を使いました。最近書いたのがあるので、簡単に書き直して載せます。参考になれば幸いです。
簡単ですがこんな感じです。
ReactNative
1import * as React from 'react';
2import {
3 View, Text, StyleSheet, useWindowDimensions,
4} from 'react-native';
5
6const SignUpScreen = () => {
7 // 閾値の設定
8 const window = useWindowDimensions();
9 const thresholdForWindowWidth = 480;
10 const isNarrowWindow = (window.width <= thresholdForWindowWidth);
11 return (
12 <View style={isNarrowWindow ? styles.containerWide : styles.containerNarrow}>
13 <Text style={isNarrowWindow ? styles.titleWide : styles.titleNarrow}>
14 サンプル
15 </Text>
16 </View>
17 );
18};
19
20const styles = StyleSheet.create({
21 // forWideWindow
22 containerWide: {
23 width: 200,
24 height: 300,
25 },
26 titleWide: {
27 fontSize: 20,
28 marginBottom: 30,
29 fontWeight: '700',
30 },
31 // forNarrowWindow
32 centerContainerNarrow: {
33 width: 100,
34 height: 150,
35 },
36 titleNarrow: {
37 fontSize: 10,
38 marginBottom: 10,
39 fontWeight: '700',
40 },
41});
42
43export { SignUpScreen as default };
44
もしくは、
ReactNative
1import 'react-native-gesture-handler';
2import * as React from 'react';
3import {
4 View, Text, StyleSheet, useWindowDimensions,
5} from 'react-native';
6
7const SignUpScreen = () => {
8 // 閾値の設定
9 const window = useWindowDimensions();
10 const thresholdForWindowWidth = 480;
11 const isNarrowWindow = (window.width <= thresholdForWindowWidth);
12
13 const styles = StyleSheet.create({
14 centerContainer: {
15 width: isNarrowWindow ? 200 : 100,
16 height: isNarrowWindow ? 300 : 150,
17 },
18 title: {
19 fontSize: isNarrowWindow ? 20 : 10,
20 marginBottom: isNarrowWindow ? 30 : 10,
21 fontWeight: '700',
22 },
23 });
24
25 return (
26 <View style={styles.centerContainer}>
27 <Text style={styles.title}>
28 サンプル
29 </Text>
30 </View>
31 );
32};
33
34export { SignUpScreen as default };
と書きました。
もしuseWindowDimensionsではなくDimensionsを使うのであれば、
ReactNative
1import 'react-native-gesture-handler';
2import * as React from 'react';
3import {
4 View, Text, StyleSheet, Dimensions,
5} from 'react-native';
6
7const SignUpScreen = () => (
8 <View style={styles.centercontainer}>
9 <Text style={styles.title}>
10 サンプル
11 </Text>
12 </View>
13);
14
15// 閾値の設定
16const window = Dimensions.get('window');
17const thresholdForWindowWidth = 480;
18const isNarrowWindow = (window.width <= thresholdForWindowWidth);
19
20const styles = StyleSheet.create({
21 centerContainer: {
22 width: isNarrowWindow ? 200 : 100,
23 height: isNarrowWindow ? 300 : 150,
24 },
25 title: {
26 fontSize: isNarrowWindow ? 20 : 10,
27 marginBottom: isNarrowWindow ? 30 : 10,
28 fontWeight: '700',
29 },
30});
31
32export { SignUpScreen as default };
33
でしょうか。私はDImensionsは使ったことないですが、公式ページ(Dimensions)には、useWindowDimensions is the preferred API for React components. Unlike Dimensions, it updates as the window's dimensions update. This works nicely with the React paradigm.と書いてあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。