Flexbox Layout System
📐 React Native Flexbox Layout System (TypeScript)
React Native-এ Layout তৈরি করার মূল ভিত্তি হলো Flexbox। Web-এর CSS Flexbox-এর মতো হলেও React Native-এর Flexbox কিছুটা আলাদা এবং মোবাইল UI ডিজাইনের জন্য অপ্টিমাইজড।
🔹 Flexbox কী?
Flexbox একটি layout system যার মাধ্যমে আমরা screen-এর মধ্যে Row বা Column ভিত্তিকভাবে UI elements সাজাতে পারি।
👉 React Native-এ ডিফল্টভাবে:
- flexDirection = column
- সব layout flexbox ভিত্তিক
🔹 Flexbox Properties (Core)
- flex – space কিভাবে ভাগ হবে
- flexDirection – row / column
- justifyContent – main axis alignment
- alignItems – cross axis alignment
- alignSelf – single item alignment
- flexWrap – wrap behavior
🔹 Basic Flex Layout (TypeScript Example)
import { View, Text } from 'react-native';
const FlexExample = (): JSX.Element => {
return (
<View style={{ flex: 1 }}>
<View style={{ flex: 1, backgroundColor: 'red' }} />
<View style={{ flex: 2, backgroundColor: 'green' }} />
<View style={{ flex: 1, backgroundColor: 'blue' }} />
</View>
);
};
export default FlexExample;
📱 Output Explanation:
- Screen 4 ভাগে ভাগ হবে
- Red: 1 অংশ
- Green: 2 অংশ
- Blue: 1 অংশ
- সব vertically (column) সাজানো
🔹 flexDirection (Row vs Column)
<View style={{ flexDirection: 'row' }}>
<Text>One</Text>
<Text>Two</Text>
<Text>Three</Text>
</View>
✔ row → items horizontally
✔ column → items vertically
🔹 justifyContent (Main Axis)
justifyContent: 'space-between'
- flex-start
- center
- flex-end
- space-between
- space-around
- space-evenly
📌 Row হলে → horizontal alignment
📌 Column হলে → vertical alignment
🔹 alignItems (Cross Axis)
alignItems: 'center'
- flex-start
- center
- flex-end
- stretch
🔹 Real Life Layout Example (Header + Content + Footer)
<View style={{ flex: 1 }}>
<View style={{ flex: 1, backgroundColor: '#0f766e' }} />
<View style={{ flex: 6, backgroundColor: '#99f6e4' }} />
<View style={{ flex: 1, backgroundColor: '#115e59' }} />
</View>
📱 Output:
- Top → Header
- Middle → Main Content
- Bottom → Footer
✅ Best Practices (Interview + Production)
- সবসময় flex:1 দিয়ে root container শুরু করুন
- Nested View কম রাখুন
- Percentage layout এড়িয়ে চলুন
- Responsive UI-এর জন্য Flexbox ব্যবহার করুন
- TypeScript ব্যবহার করলে JSX.Element return করুন
✨ Summary
React Native Flexbox শিখলে আপনি যেকোনো মোবাইল UI — Login Screen, Dashboard, Card Layout, List Layout খুব সহজেই বানাতে পারবেন।
লোড হচ্ছে...
1. Flexbox কী?
Flexbox হলো layout system যা UI alignment সহজ করে।
2. React Native এ default flexDirection কী?
column
3. justifyContent ও alignItems এর পার্থক্য কী?
justifyContent main axis ও alignItems cross axis নিয়ন্ত্রণ করে।