概要: このチュートリアルでは、React NativeのuseWindowDimensions
フックを使用して、現在のウィンドウの寸法を取得する方法を学びます。
React Native useWindowDimensionsフックの概要
モバイルアプリ開発では、デバイス間で優れたユーザーエクスペリエンスを確保するために、レスポンシブデザインを作成することが重要です。
React Nativeは、ウィンドウの現在の幅と高さを含むオブジェクトを返すuseWindowDimensions
フックをサポートしています。この情報に基づいて、柔軟なレイアウトを作成できます。
次の例は、useWindowDimension
フックの使用方法を示しています
import { View, Text, StyleSheet, useWindowDimensions } from 'react-native';
const App = () => {
const { width, height } = useWindowDimensions();
return (
<View style={styles.container}>
<Text style={styles.text}>Width: {width}</Text>
<Text style={styles.text}>Height: {height}</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
text: {
fontSize: 20,
},
});
export default App;
Code language: JavaScript (javascript)
出力
仕組み
まず、react-native
ライブラリからuseWindowDimension
フックをインポートします
import { View, Text, StyleSheet, useWindowDimensions } from 'react-native';
Code language: JavaScript (javascript)
次に、useWindowDimensions()
フックを呼び出して、ウィンドウの幅と高さを取得します
const { width, height } = useWindowDimensions();
Code language: JavaScript (javascript)
3番目に、ウィンドウの幅と高さを画面に表示します
<View style={styles.container}>
<Text style={styles.text}>Width: {width}</Text>
<Text style={styles.text}>Height: {height}</Text>
</View>
Code language: HTML, XML (xml)
次の例では、useWindowDimensions
フックを使用して、ウィンドウの幅に基づいてフォントサイズと背景色を変更するレスポンシブレイアウトを作成します
import { View, Text, StyleSheet, useWindowDimensions } from 'react-native';
const App = () => {
const { width } = useWindowDimensions();
const isLargeScreen = width > 600;
return (
<View style={[styles.container, isLargeScreen ? styles.largeScreen : styles.smallScreen]}>
<Text style={[styles.text, isLargeScreen ? styles.largeText : styles.smallText]}>
This is a {isLargeScreen ? 'large' : 'small'} screen.
</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
largeScreen: {
backgroundColor: 'lightblue',
},
smallScreen: {
backgroundColor: 'lightgreen',
},
text: {
textAlign: 'center',
},
largeText: {
fontSize: 24,
},
smallText: {
fontSize: 16,
},
});
export default App;
Code language: JavaScript (javascript)
出力
仕組み
まず、useWindowDimension
フックを使用して、現在のウィンドウの幅を取得します
const { width } = useWindowDimensions();
Code language: JavaScript (javascript)
次に、幅が600より大きい場合にtrueを返す変数を作成します
const isLargeScreen = width > 600;
Code language: JavaScript (javascript)
3番目に、isLargeScreen
の値に基づいて、異なる背景とより大きなフォントサイズを適用します
<View style={[styles.container, isLargeScreen ? styles.largeScreen : styles.smallScreen]}>
<Text style={[styles.text, isLargeScreen ? styles.largeText : styles.smallText]}>
This is a {isLargeScreen ? 'large' : 'small'} screen.
</Text>
</View>
Code language: HTML, XML (xml)
概要
- React Nativeの
useWindowDimensions
フックを使用して、現在のウィンドウの寸法を取得します。
このチュートリアルは役に立ちましたか?