Jetpack Compose में Row: यह क्या है, composable गुण और यह कैसे काम करता है

लेखक: IT Sectr प्रकाशित: 2026-06-28 पढ़ने का समय: 10 मिनट

Row Jetpack Compose में चाइल्ड तत्वों को एक क्षैतिज पंक्ति में रखने के लिए एक composable फ़ंक्शन है। Column के विपरीत, Row तत्वों को बाएं से दाएं व्यवस्थित करता है और horizontalArrangement और verticalAlignment पैरामीटर के माध्यम से लेआउट कॉन्फ़िगरेशन का समर्थन करता है। Google Android Documentation, 2025 के अनुसार, Row Column और Box के साथ तीन बुनियादी Compose कंटेनरों में से एक है और इसका उपयोग क्षैतिज इंटरफ़ेस संरचनाएं बनाने के लिए किया जाता है: बटन पंक्तियाँ, इनपुट फ़ील्ड और टेक्स्ट के साथ आइकन।

मुख्य बातें

  • Row एक क्षैतिज Jetpack Compose कंटेनर है जो चाइल्ड composable तत्वों को बाएं से दाएं एक पंक्ति में रखता है।
  • horizontalArrangement तत्वों के क्षैतिज वितरण को नियंत्रित करता है: समान रूप से, अंतराल के साथ, या कंटेनर के अंत में।
  • verticalAlignment तत्वों को कंटेनर के सापेक्ष लंबवत रूप से संरेखित करता है: ऊपर, केंद्र या नीचे।
  • Modifier.weight निर्दिष्ट वजन के अनुपात में Row तत्वों के बीच उपलब्ध स्थान वितरित करने की अनुमति देता है।
  • Row मोबाइल इंटरफ़ेस में बटन पंक्तियाँ, आइकन सूचियाँ, इनपुट फ़ील्ड और क्षैतिज टूलबार बनाने के लिए प्रभावी है।

Jetpack Compose में Row क्या है

Row एक composable फ़ंक्शन है जो चाइल्ड तत्वों को एक क्षैतिज अनुक्रम में रखता है। Compose लेआउट पदानुक्रम में, Row Column और Box के साथ एक बुनियादी कंटेनर की स्थिति रखता है।

Row को आयाम निर्दिष्ट करने की आवश्यकता नहीं है — यह स्वचालित रूप से अपनी सामग्री के अनुसार समायोजित हो जाता है। Row की चौड़ाई Modifier.fillMaxWidth या एक निश्चित आकार निर्दिष्ट न होने तक पैडिंग सहित चाइल्ड तत्वों की चौड़ाई के योग के बराबर होती है।

Row के चाइल्ड तत्वों के अपने स्वयं के मॉडिफायर हो सकते हैं जो कंटेनर के भीतर उनकी स्थिति को प्रभावित करते हैं। उदाहरण के लिए, Modifier.weight तत्वों को उपलब्ध स्थान का एक आनुपातिक भाग लेने की अनुमति देता है।

Android Developers Blog, 2024 के अनुसार, Row चाइल्ड तत्वों को क्रमिक रूप से संसाधित करता है, Compose माप नियमों के आधार पर उनके आकार की गणना करता है: पहले बिना weight वाले तत्वों को मापा जाता है, फिर शेष स्थान weight वाले तत्वों के बीच वितरित किया जाता है।

Row सिंटैक्स और मूल हस्ताक्षर

Row के मूल हस्ताक्षर में modifier पैरामीटर, horizontalArrangement और verticalAlignment शामिल हैं। सभी चाइल्ड तत्व अंतिम कंटेंट लैम्ब्डा ब्लॉक में पास किए जाते हैं।

kotlin
@Composable
fun RowExample() {
    Row(
        modifier = Modifier.fillMaxWidth().padding(16.dp),
        horizontalArrangement = Arrangement.SpaceEvenly,
        verticalAlignment = Alignment.CenterVertically
    ) {
        Text(text = "एक")
        Text(text = "दो")
        Text(text = "तीन")
    }
}

Row के गुण: horizontalArrangement और verticalAlignment

horizontalArrangement पैरामीटर यह निर्धारित करता है कि Row के भीतर क्षैतिज अक्ष के साथ चाइल्ड तत्व कैसे वितरित किए जाते हैं। Arrangement वर्ग से Start, End, Center, SpaceBetween, SpaceAround और SpaceEvenly उपलब्ध मान हैं।

Arrangement.Start तत्वों को कंटेनर की शुरुआत में रखता है, Arrangement.End — अंत में, और Arrangement.Center — केंद्र में। ये मान CSS Flexbox में justify-content प्रॉपर्टी के समान काम करते हैं।

Arrangement.SpaceBetween तत्वों को समान रूप से वितरित करता है, पहले तत्व को शुरुआत में, अंतिम को अंत में और बाकी को उनके बीच समान अंतराल के साथ रखता है। Material Design Guidelines, 2025 के अनुसार, SpaceBetween टूलबार और नेविगेशन पंक्तियों के लिए इष्टतम है।

verticalAlignment पैरामीटर तत्वों को लंबवत रूप से संरेखित करता है। Alignment.Top, Alignment.CenterVertically और Alignment.Bottom उपलब्ध मान हैं। यह गुण तब उपयोगी होता है जब Row तत्वों की ऊंचाई अलग-अलग होती है — उदाहरण के लिए, बहु-पंक्ति टेक्स्ट के बगल में एक आइकन।

Arrangement मानों की तालिका

मानविवरणउपयोग
Startतत्व Row की शुरुआत में खिसकाए गएबाएं-संरेखित पंक्तियाँ
Centerतत्व कंटेनर में केंद्रितक्षैतिज मेनू, हेडर
SpaceBetweenपहले शुरुआत में और अंतिम अंत में समान रूप सेटूलबार, नेविगेशन
SpaceEvenlyतत्वों और किनारों के बीच समान अंतरालबटन पंक्तियाँ, एकसमान ग्रिड
SpaceAroundतत्वों के बीच समान अंतराल, किनारों पर आधा अंतरालकार्यूज़ल, आइकन गैलरी

Modifier.weight के साथ स्थान वितरण

Modifier.weight एक मॉडिफायर है जो केवल Row और Column के अंदर उपलब्ध है जो निर्दिष्ट मान के अनुपात में चाइल्ड तत्वों के बीच उपलब्ध स्थान वितरित करता है। यदि एक तत्व का वजन 1.0f है और दूसरे का 2.0f है, तो दूसरा तत्व दोगुना स्थान लेगा।

बिना weight वाले तत्व अपनी सामग्री के लिए आवश्यक स्थान लेते हैं। शेष स्थान weight वाले तत्वों के बीच उनके वजन के अनुपात में वितरित किया जाता है। यह व्यवहार CSS Flexbox में flex-grow प्रॉपर्टी के समान है।

Android Developer Documentation, 2025 के अनुसार, weight केवल Row, Column और BoxWithConstraints के अंदर काम करता है। Row में weight का उपयोग करते समय, सभी चाइल्ड तत्वों को दो पासों में मापा जाता है: पहले बिना weight वाले तत्व, फिर weight वाले तत्व।

kotlin
@Composable
fun WeightExample() {
    Row(
        modifier = Modifier.fillMaxWidth(),
        horizontalArrangement = Arrangement.Start
    ) {
        Text(
            text = "बाएं",
            modifier = Modifier.weight(1.0f)
        )
        Text(text = "दाएं")
    }
}

Row के साथ कोड उदाहरण

पहला उदाहरण एक आइकन और टेक्स्ट के साथ Row प्रदर्शित करता है — संपर्क सूची या सेटिंग्स के लिए एक विशिष्ट परिदृश्य। Icon और Text को केंद्र में verticalAlignment के साथ Row में लपेटा गया है।

kotlin
@Composable
fun IconWithText() {
    Row(
        verticalAlignment = Alignment.CenterVertically,
        modifier = Modifier.padding(8.dp)
    ) {
        Icon(
            imageVector = Icons.Default.Favorite,
            contentDescription = "Favorite"
        )
        Spacer(modifier = Modifier.width(8.dp))
        Text(text = "पसंदीदा में जोड़ें")
    }
}

दूसरा उदाहरण बटन और समान वितरण के साथ Row दिखाता है। SpaceEvenly सभी बटनों और कंटेनर के किनारों के बीच समान अंतराल की गारंटी देता है।

kotlin
@Composable
fun ButtonRow() {
    Row(
        modifier = Modifier.fillMaxWidth().padding(16.dp),
        horizontalArrangement = Arrangement.SpaceEvenly
    ) {
        Button(onClick = {}) { Text("रद्द करें") }
        Button(onClick = {}) { Text("सहेजें") }
    }
}

तीसरा उदाहरण — रेटिंग प्रदर्शित करने के लिए Card के अंदर Row। Modifier.weight के साथ एक नेस्टेड Row रेटिंग स्टार और संख्यात्मक मान को निश्चित स्थान लेने की अनुमति देता है।

kotlin
@Composable
fun RatingRow(rating: Float) {
    Row(
        verticalAlignment = Alignment.CenterVertically
    ) {
        Text(
            text = "रेटिंग:",
            modifier = Modifier.weight(1.0f)
        )
        Text(text = "$rating / 5.0")
    }
}

अनुकूली लेआउट में Row की विशेषताएं

Row को अनुकूली लेआउट में चौड़ाई नियंत्रण की आवश्यकता होती है। यदि Row की सामग्री उपलब्ध स्क्रीन चौड़ाई से अधिक हो जाती है, तो तत्व कंटेनर की सीमाओं से बाहर निकल सकते हैं। इसे रोकने के लिए, Modifier.horizontalScroll का उपयोग करें या Column पर स्विच करें।

Row को Modifier.weight के साथ संयोजित करते समय, पैरेंट Row के लिए fillMaxWidth सेट करना महत्वपूर्ण है — अन्यथा weight अस्तित्वहीन स्थान वितरित करेगा। Material Design Guidelines, 2025 के अनुसार, fillMaxWidth के बिना weight वाला Row एक अमान्य कॉन्फ़िगरेशन माना जाता है।

अनुकूली इंटरफ़ेस के लिए, Row को Box के साथ संयोजित करने या विभिन्न स्क्रीन आकारों में स्वचालित तत्व वितरण के लिए Arrangement.SpaceBetween का उपयोग करने की अनुशंसा की जाती है। यह मीडिया क्वेरी के बिना लचीलापन प्रदान करता है।

  • Modifier.horizontalScroll — Row के ओवरफ़्लो होने पर स्क्रॉलिंग जोड़ता है
  • Modifier.weight — स्थान को आनुपातिक रूप से वितरित करता है
  • Arrangement.SpaceBetween — किनारों पर फिक्सिंग के साथ अनुकूली वितरण

अक्सर पूछे जाने वाले प्रश्न

Jetpack Compose में Row, Column से कैसे अलग है?

Row तत्वों को क्षैतिज रूप से (बाएं से दाएं) रखता है, जबकि Column उन्हें लंबवत रूप से (ऊपर से नीचे) रखता है। Row पुराने View दृष्टिकोण से क्षैतिज ओरिएंटेशन वाले LinearLayout को बदलता है, और Column ऊर्ध्वाधर LinearLayout को बदलता है।

स्क्रॉल करने योग्य Row कैसे बनाएं?

Row में Modifier.horizontalScroll मॉडिफायर जोड़ें। सुस्त लोडिंग वाली बड़ी सूचियों के लिए, LazyRow का उपयोग करें — यह केवल दृश्यमान तत्वों को रेंडर करता है और स्क्रॉल करने के दौरान उन्हें रीसायकल करता है।

क्या Row को दूसरे Row के अंदर नेस्ट किया जा सकता है?

हाँ, Row को दूसरे Row, Column या Box के अंदर नेस्ट किया जा सकता है। नेस्टिंग करते समय, ध्यान रखें कि आंतरिक Row को पैरेंट कंटेनर से अपनी चौड़ाई मिलेगी, और यदि आवश्यक हो, तो प्रत्येक स्तर के लिए fillMaxWidth सेट करें।

Row में Modifier.weight क्या करता है?

Modifier.weight Row में शेष स्थान को निर्दिष्ट वजन के अनुपात में चाइल्ड तत्वों के बीच वितरित करता है। 2.0f वजन वाला तत्व 1.0f वजन वाले तत्व से दोगुना चौड़ा हो जाएगा। Weight केवल Row और Column के अंदर काम करता है।

Row तत्वों को लंबवत रूप से केंद्र में कैसे संरेखित करें?

Row बनाते समय verticalAlignment = Alignment.CenterVertically पैरामीटर का उपयोग करें। यह उनकी ऊंचाई की परवाह किए बिना सभी चाइल्ड तत्वों को लंबवत अक्ष के साथ संरेखित करेगा।

सारांश

  • Row अनुकूलन योग्य व्यवस्था और संरेखण के साथ तत्वों को बाएं से दाएं एक पंक्ति में रखने के लिए एक क्षैतिज Compose कंटेनर है।
  • horizontalArrangement तत्वों के क्षैतिज वितरण को नियंत्रित करता है: Start, Center, End, SpaceBetween, SpaceEvenly और SpaceAround।
  • verticalAlignment Alignment.Top, CenterVertically या Bottom के माध्यम से तत्वों को लंबवत रूप से संरेखित करता है।
  • Modifier.weight CSS में flex-grow के समान, निर्दिष्ट वजन के अनुपात में तत्वों के बीच खाली स्थान वितरित करता है।
  • Row नेस्टिंग, Modifier.horizontalScroll के माध्यम से स्क्रॉलिंग और अन्य Compose कंटेनरों के साथ काम करने का समर्थन करता है।
  • अनुकूली लेआउट में, weight के साथ Row के लिए Modifier.fillMaxWidth सेट करना महत्वपूर्ण है, अन्यथा तत्व स्थान को सही ढंग से वितरित नहीं करेंगे।
  • कई तत्वों वाली क्षैतिज सूचियों के लिए, इष्टतम प्रदर्शन के लिए Row के बजाय LazyRow का उपयोग करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें