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 খুব সহজেই বানাতে পারবেন।

👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Flexbox কী?

Flexbox হলো layout system যা UI alignment সহজ করে।

2. React Native এ default flexDirection কী?

column

3. justifyContent ও alignItems এর পার্থক্য কী?

justifyContent main axis ও alignItems cross axis নিয়ন্ত্রণ করে।