ParagraphStyle — मुख्य अवधारणाएँ, गुण और उपयोग

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

ParagraphStyle फ़ॉर्मेटिंग पैरामीटर्स का एक सेट है जो टेक्स्ट पैराग्राफ की विज़ुअल उपस्थिति को परिभाषित करता है। मोबाइल डेवलपमेंट में, ParagraphStyle में संरेखण (left, center, right, justified), लाइन स्पेसिंग, पहली पंक्ति का इंडेंटेशन, पैराग्राफ के बीच स्पेसिंग और टेक्स्ट दिशा शामिल है। Material Design Typography Guidelines (2025) के अनुसार, एप्लिकेशन की सभी स्क्रीन पर ParagraphStyle का सुसंगत उपयोग एक समान टाइपोग्राफ़िक लय सुनिश्चित करता है और सेक्शन के बीच स्विच करते समय विज़ुअल शोर को कम करता है।

मुख्य बिंदु

  • ParagraphStyle — पैराग्राफ़ फ़ॉर्मेटिंग सेटिंग्स ऑब्जेक्ट: संरेखण, इंडेंटेशन, स्पेसिंग।
  • प्लेटफ़ॉर्म — iOS: NSMutableParagraphStyle, Android: ParagraphStyle (Compose) / Layout (View), Flutter: TextStyle।
  • संरेखण — मुख्य टेक्स्ट के लिए left, शीर्षकों के लिए center, पुस्तक प्रारूप के लिए justified।
  • इंडेंटेशन — firstLineHeadIndent (पहली पंक्ति इंडेंट), paragraphSpacing (पैराग्राफ के बीच स्पेसिंग)।
  • स्थानीयकरण — ParagraphStyle विभिन्न भाषाओं के लिए टेक्स्ट दिशा (LTR/RTL) को ध्यान में रखता है।

टाइपोग्राफ़ी में ParagraphStyle क्या है

ParagraphStyle (पैराग्राफ शैली) फ़ॉर्मेटिंग नियमों का एक सेट है जो टेक्स्ट के एक या अधिक पैराग्राफ पर लागू होता है। कैरेक्टर शैलियों (bold, italic, font-size) के विपरीत जो अलग-अलग कैरेक्टर के स्तर पर काम करती हैं, ParagraphStyle मैक्रो-गुणों का प्रबंधन करता है: कंटेनर में टेक्स्ट का स्थान, लाइनों और पैराग्राफ के बीच स्पेसिंग, लेखन दिशा और हाइफ़नेशन नियम।

ऐतिहासिक रूप से, ParagraphStyle की अवधारणा डेस्कटॉप पब्लिशिंग सिस्टम (QuarkXPress, PageMaker, InDesign) से आई है, जहाँ प्रत्येक पैराग्राफ के अपने पैरामीटर होते थे। मोबाइल डेवलपमेंट में, यह दृष्टिकोण सॉफ़्टवेयर API में बदल गया: iOS पर NSMutableParagraphStyle, Android में ParagraphStyle और LineBreakStyle क्लास, और Flutter में textAlign और textHeightBehavior जैसे पैरामीटर। ये सभी एक उद्देश्य पूरा करते हैं — पैराग्राफ़ फ़ॉर्मेटिंग का प्रबंधन कोड के माध्यम से, किसी विशिष्ट टेक्स्ट इंजन से बंधे बिना।

Bringhurst — The Elements of Typographic Style (2024) के अनुसार, ParagraphStyle का उचित कॉन्फ़िगरेशन इंटरफ़ेस टाइपोग्राफ़िक संस्कृति की नींव है। यदि टाइपफ़ेस और फ़ॉन्ट आकार टेक्स्ट की «आवाज़» को परिभाषित करते हैं, तो पैराग्राफ शैली इसकी «साँस» को परिभाषित करती है: लय, विराम और उच्चारण। मोबाइल इंटरफ़ेस में जहाँ स्थान सीमित है, सही ParagraphStyle अधिक जानकारी को पठनीयता खोए बिना समाहित करने की अनुमति देता है।

ParagraphStyle के मुख्य गुण

ParagraphStyle में गुणों के कई समूह शामिल हैं, प्रत्येक एक विशिष्ट फ़ॉर्मेटिंग पहलू के लिए ज़िम्मेदार है। आइए मोबाइल API में उपलब्ध मुख्य पैरामीटर देखें। संरेखण मुख्य पैरामीटर है जो टेक्स्ट की क्षैतिज स्थिति निर्धारित करता है। iOS पर NSTextAlignment उपलब्ध है, Android पर — Layout.Alignment, Flutter में — TextAlign।

गुणiOS (NSMutableParagraphStyle)Android (Compose)Flutter (TextStyle)
संरेखणalignmenttextAligntextAlign
बायाँ इंडेंटheadIndenttextIndent (Compose में)
दायाँ इंडेंटtailIndent
पहली पंक्ति इंडेंटfirstLineHeadIndenttextIndent (firstLine)
पैराग्राफ के बीच स्पेसिंगparagraphSpacingparagraphStyle (lineHeight)
पैराग्राफ से पहले स्पेसिंगparagraphSpacingBefore
टेक्स्ट दिशाbaseWritingDirectionTextDirection (Compose)textDirection
लाइन ब्रेक मोडlineBreakModeoverflow (TextStyle)overflow (TextStyle)

यह समझना महत्वपूर्ण है कि सभी गुण सभी प्लेटफ़ॉर्म पर समान रूप से उपलब्ध नहीं हैं। उदाहरण के लिए, पहली पंक्ति इंडेंट (firstLineHeadIndent) पूरी तरह से केवल iOS पर NSMutableParagraphStyle के माध्यम से समर्थित है। Android में, इस उद्देश्य के लिए LeadingMarginSpan के साथ SpannableString का उपयोग किया जाता है, और Flutter में — कस्टम TextSpan और padding के साथ RichText। क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट (Flutter, React Native) में, कुछ ParagraphStyle गुणों को कंटेनर या Spacer के माध्यम से अनुकरण करना पड़ता है।

iOS में ParagraphStyle: NSMutableParagraphStyle

iOS में, पैराग्राफ शैली के साथ काम करने का मुख्य उपकरण NSMutableParagraphStyle क्लास है — NSParagraphStyle का उपवर्ग। यह पैराग्राफ़ फ़ॉर्मेटिंग के प्रबंधन के लिए गुणों का एक पूरा सेट प्रदान करता है और NSAttributedString के माध्यम से लागू किया जाता है। NSMutableParagraphStyle न केवल UILabel और UITextView में, बल्कि CTParagraphStyle के माध्यम से Core Text में भी उपयोग किया जाता है।

swift
// iOS: पूर्ण ParagraphStyle कॉन्फ़िगरेशन
let paragraphStyle = NSMutableParagraphStyle()

// संरेखण
paragraphStyle.alignment = .justified     // जस्टिफ़ाइड

// इंडेंटेशन
paragraphStyle.headIndent = 16          // बायाँ इंडेंट
paragraphStyle.tailIndent = -16         // दायाँ इंडेंट (नकारात्मक)
paragraphStyle.firstLineHeadIndent = 32 // पहली पंक्ति इंडेंट

// पैराग्राफ स्पेसिंग
paragraphStyle.paragraphSpacing = 12    // पैराग्राफ के बाद
paragraphStyle.paragraphSpacingBefore = 8 // पैराग्राफ से पहले

// लाइन ऊँचाई
paragraphStyle.minimumLineHeight = 24
paragraphStyle.maximumLineHeight = 24

let attributes: [NSAttributedString.Key: Any] = [
    .font: UIFont.systemFont(ofSize: 16),
    .paragraphStyle: paragraphStyle
]

let label = UILabel()
label.attributedText = NSAttributedString(
    string: "This paragraph has a custom ParagraphStyle.\n\nSecond paragraph with 12 pt spacing.",
    attributes: attributes
)

SwiftUI में, NSMutableParagraphStyle का कोई सीधा समकक्ष नहीं है — इसके बजाय मॉडिफ़ायर का संयोजन उपयोग किया जाता है: .multilineTextAlignment() संरेखण के लिए, .lineSpacing() लाइन स्पेसिंग के लिए। SwiftUI में पहली पंक्ति इंडेंटेशन और पैराग्राफ स्पेसिंग के लिए, Text + padding या AttributedString (iOS 15+ से उपलब्ध) का उपयोग करना पड़ता है, जो विशेषताओं के माध्यम से NSParagraphStyle का समर्थन करता है।

swift
// SwiftUI: ParagraphStyle के साथ AttributedString (iOS 15+)
var attributed: AttributedString = """
This is the first paragraph with indent.

This is the second paragraph with 12 pt spacing.
"""

let ps = NSMutableParagraphStyle()
ps.paragraphSpacing = 12
ps.firstLineHeadIndent = 20

let container = AttributeContainer()
    .paragraphStyle(ps)

attributed.mergeAttributes(container)

Text(attributed)
    .font(.body)

Apple — Text Programming Guide (2025) के अनुसार, NSMutableParagraphStyle 14 विभिन्न फ़ॉर्मेटिंग पैरामीटर तक का समर्थन करता है। यह याद रखना महत्वपूर्ण है कि tailIndent कंटेनर की चौड़ाई के सापेक्ष ऋणात्मक मान के रूप में सेट किया जाता है, जबकि headIndent सकारात्मक है। यह गैर-स्पष्ट व्यवहार अक्सर नौसिखिए iOS डेवलपर्स में त्रुटियों का कारण बनता है।

Android में ParagraphStyle: View सिस्टम और Compose

Android में, ParagraphStyle का दृष्टिकोण View सिस्टम और Jetpack Compose के बीच भिन्न है। क्लासिक View सिस्टम में, पैराग्राफ पैरामीटर TextView के XML विशेषताओं (android:textAlignment, android:lineSpacingExtra) या android.text.style पैकेज से ParagraphStyle इंटरफ़ेस के कार्यान्वयन के साथ SpannableString के माध्यम से सेट किए जाते हैं।

kotlin
// Android View सिस्टम: SpannableString के माध्यम से ParagraphStyle
val text = "First paragraph with settings.\n\nSecond paragraph."
val spannable = SpannableString(text)

// जस्टिफ़ाइड संरेखण
spannable.setSpan(
    AlignmentSpan.Standard(Layout.Alignment.ALIGN_NORMAL),
    0, text.length,
    Spannable.SPAN_PARAGRAPH
)

// LeadingMarginSpan के माध्यम से पहली पंक्ति इंडेंट
spannable.setSpan(
    LeadingMarginSpan.Standard(0, 20),
    0, text.indexOf('\n'),
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)

textView.text = spannable

Jetpack Compose में, ParagraphStyle TextStyle पैरामीटर के माध्यम से प्रबंधित किया जाता है। संरेखण के लिए textAlign, लाइन स्पेसिंग के लिए lineHeight (sp या em में), और पहली पंक्ति इंडेंटेशन के लिए textIndent का उपयोग किया जाता है। Compose लाइन ब्रेक (Simple, Heading, Paragraph) के बेहतरीन नियंत्रण के लिए LineBreak का भी समर्थन करता है, जो बहुभाषी टेक्स्ट के लिए विशेष रूप से उपयोगी है।

kotlin
// Jetpack Compose: TextStyle के माध्यम से ParagraphStyle
Text(
    text = "कस्टम शैली के साथ पहला पैराग्राफ।

इंडेंट के साथ दूसरा पैराग्राफ।",
    style = TextStyle(
        textAlign = TextAlign.Justify,
        lineHeight = 24.sp,
        textIndent = TextIndent(firstLine = 16.sp),
        lineBreak = LineBreak.Paragraph
    )
)

Android Developers — Compose ParagraphStyle (2025) के अनुसार, Compose में TextIndent का उपयोग करते समय firstLine को sp (dp में नहीं) में सेट करना महत्वपूर्ण है, क्योंकि पहली पंक्ति का इंडेंट टेक्स्ट के साथ स्केल होना चाहिए। यदि इंडेंट dp में सेट किया गया है, तो फ़ॉन्ट आकार बढ़ने पर पहली पंक्ति का इंडेंट दृष्टिगत रूप से छोटा हो जाएगा, जिससे टाइपोग्राफ़िक अनुपात बिगड़ जाएगा।

Flutter में ParagraphStyle: TextHeightBehavior और StrutStyle

Flutter में, ParagraphStyle प्रतिमान को एक समर्पित क्लास में अलग नहीं किया गया है — इसके बजाय, TextStyle पैरामीटर और अतिरिक्त क्लास का संयोजन उपयोग किया जाता है। संरेखण TextAlign के माध्यम से, लाइन स्पेसिंग height (बिना इकाई) के माध्यम से सेट की जाती है, और TextHeightBehavior पहली और अंतिम पंक्ति के दृश्य इंडेंट को नियंत्रित करता है।

dart
// Flutter: Text पैरामीटर के माध्यम से ParagraphStyle
Text(
    'Flutter में स्टाइल किया गया पैराग्राफ।

इंडेंट के साथ दूसरा पैराग्राफ।',
    style: TextStyle(
        fontSize: 16,
        height: 1.5,
        leadingDistribution: TextLeadingDistribution.proportional,
    ),
    textAlign: TextAlign.justify,
    textHeightBehavior: TextHeightBehavior(
        applyHeightToFirstAscent: true,
        applyHeightToLastDescent: true,
    ),
)

अधिक जटिल परिदृश्यों के लिए, Flutter कस्टम TextSpan और WidgetSpan के साथ RichText का उपयोग प्रदान करता है। यह एक समान फ़ॉर्मेटिंग नियमों को बनाए रखते हुए, एक ही पैराग्राफ में इनलाइन विजेट (आइकन, छवियाँ) के साथ टेक्स्ट को संयोजित करने की अनुमति देता है। हालाँकि, इस दृष्टिकोण के लिए लाइन ब्रेक के मैन्युअल नियंत्रण की आवश्यकता होती है और यह स्वचालित हाइफ़नेशन का समर्थन नहीं करता है।

dart
// Flutter: कस्टम पैराग्राफ फ़ॉर्मेटिंग के साथ RichText
RichText(
    text: TextSpan(
        style: TextStyle(fontSize: 16, height: 1.5),
        children: [
            TextSpan(text: 'First paragraph with icon '),
            WidgetSpan(
                child: Icon(Icons.star, size: 16),
                alignment: PlaceholderAlignment.middle,
            ),
            TextSpan(text: '\n\nSecond paragraph after spacing.'),
        ],
    ),
)

Flutter Documentation — Text Widget (2025) के अनुसार, TextHeightBehavior Flutter में ParagraphStyle के सही प्रदर्शन के लिए एक महत्वपूर्ण पैरामीटर है। यदि applyHeightToFirstAscent को false पर सेट किया जाता है, तो पहली पंक्ति के शीर्ष इंडेंट को अनदेखा कर दिया जाता है, और टेक्स्ट कंटेनर की ऊपरी सीमा से «चिपक» जाता है। यह शीर्षकों के लिए उपयोगी है, लेकिन मुख्य टेक्स्ट के लिए अवांछनीय है।

ParagraphStyle और स्थानीयकरण: LTR/RTL और क्षेत्रीय विशेषताएँ

ParagraphStyle को प्रत्येक लोकेल के लिए लेखन दिशा को ध्यान में रखना चाहिए। अरबी, हिब्रू या उर्दू (दाएँ-से-बाएँ लेखन, RTL) के समर्थन वाले मोबाइल ऐप में, इंडेंटेशन और संरेखण को दर्पण की तरह बदलना चाहिए। iOS baseWritingDirection = .natural के माध्यम से स्वचालित स्विचिंग का समर्थन करता है, Android — TextDirection के माध्यम से, Flutter — textDirection के माध्यम से।

RTL लोकेल के लिए संरेखण कॉन्फ़िगरेशन पर विशेष ध्यान देने की आवश्यकता है। यदि LTR मोड में headIndent बाएँ इंडेंट को सेट करता है, तो RTL में यह स्वचालित रूप से दाएँ इंडेंट बन जाता है। हालाँकि, सभी कार्यान्वयन संरेखण स्पष्ट रूप से निर्दिष्ट होने पर इस संक्रमण को सही ढंग से संभाल नहीं पाते हैं (NSTextAlignment.natural के बजाय NSTextAlignment.left)। Google Internationalization Guide (2025) के अनुसार, बहुभाषी ऐप के लिए हमेशा प्राकृतिक संरेखण का उपयोग करें और दोनों लेआउट में इंडेंट की जाँच करें।

kotlin
// Android: ParagraphStyle में RTL समर्थन
val textView = TextView(context)

// स्वचालित RTL समर्थन सक्षम करें
textView.textDirection = View.TEXT_DIRECTION_LOCALE
textView.textAlignment = View.TEXT_ALIGNMENT_TEXT_START

// RTL समर्थन के साथ Spannable
val spannable = SpannableString(arabicText)
spannable.setSpan(
    AlignmentSpan.Standard(Layout.Alignment.ALIGN_NORMAL),
    0, arabicText.length,
    Spannable.SPAN_PARAGRAPH
)

क्षेत्रीय विशेषताओं में पहली पंक्ति इंडेंट के लिए अलग-अलग नियम भी शामिल हैं। यूरोपीय टाइपोग्राफ़ी में, पहली पंक्ति इंडेंट (firstLineHeadIndent) पैराग्राफ पृथक्करण के लिए एक मानक है। जापानी और चीनी टाइपोग्राफ़ी में, पहली पंक्ति इंडेंट का भी उपयोग किया जाता है, लेकिन इसका आकार भिन्न हो सकता है (आमतौर पर यूरोपीय परंपरा में 1.5 em के मुकाबले 1 em)। अरबी टाइपोग्राफ़ी के लिए, पहली पंक्ति इंडेंट दुर्लभ है — पैराग्राफ अक्सर ऊर्ध्वाधर स्पेसिंग द्वारा अलग किए जाते हैं।

ParagraphStyle के साथ काम करते समय सामान्य गलतियाँ

सबसे आम गलती केवल वैश्विक टेक्स्ट फ़ील्ड विशेषताओं के माध्यम से ParagraphStyle का उपयोग करना है, बिना अलग-अलग पैराग्राफ के अलग-अलग फ़ॉर्मेटिंग पर विचार किए। एक UILabel या TextView में कई पैराग्राफ के साथ द्वारा अलग किए गए, ParagraphStyle पूरे टेक्स्ट पर समान रूप से लागू होता है, जब तक कि प्रत्येक पैराग्राफ के लिए अलग-अलग शैलियों के साथ एट्रिब्यूटेड टेक्स्ट का उपयोग नहीं किया जाता है।

  • paragraphSpacingBefore को अनदेखा करना — कई डेवलपर paragraphSpacing सेट करते हैं लेकिन paragraphSpacingBefore के बारे में भूल जाते हैं। ब्लॉक में पहले पैराग्राफ के लिए, paragraphSpacingBefore एक अतिरिक्त कंटेनर बनाए बिना शीर्ष मार्जिन सेट करने की अनुमति देता है। यह शीर्षकों वाली सूचियों के लिए विशेष रूप से उपयोगी है।
  • प्राकृतिक के बजाय हार्डकोडेड संरेखण (left/right) — यदि ऐप RTL लोकेल का समर्थन करता है, तो natural के बजाय NSTextAlignment.left या TextAlign.Start का उपयोग करने से अरबी और हिब्रू लोकेल में गलत प्रदर्शन होता है।
  • लाइन ब्रेक मोड जाँच का अभाव — संकीर्ण कंटेनर (सूचियाँ, साइडबार) में, गलत lineBreakMode शब्द काट-छाँट की ओर ले जाता है। byWordWrapping का उपयोग करें और विशिष्ट लोकेल के संदर्भ में लंबे शब्दों की जाँच करें।
  • विभिन्न ParagraphStyle के साथ Spannable को मिलाना — SPAN_PARAGRAPH के साथ Spannable सेट करते समय, पैराग्राफ सीमाओं की सही गणना करना महत्वपूर्ण है। प्रारंभ/अंत स्थितियों का वास्तविक पैराग्राफ सीमाओं से बेमेल होने पर शैली को अनदेखा कर दिया जाता है।
  • भूला हुआ बेसलाइन संरेखण — निश्चित lineHeight (minimumLineHeight) के साथ ParagraphStyle का उपयोग करते समय, सुनिश्चित करें कि बेसलाइन टेक्स्ट संरेखण सक्षम है। iOS में, इसके लिए label.baselineAdjustment = .alignBaselines का उपयोग किया जाता है।

UX Collective — Common Typography Bugs in Mobile Apps (2025) के अनुसार, ParagraphStyle की समस्याएँ मोबाइल एप्लिकेशन में सभी टाइपोग्राफ़िक बग का 18% हिस्सा हैं। सबसे महत्वपूर्ण मामले तब होते हैं जब गलत paragraphSpacing विभिन्न पंक्तियों पर टेक्स्ट ओवरलैप की ओर ले जाता है या जब RTL लोकेल LTR इंडेंट के साथ प्रदर्शित होते हैं। विभिन्न भाषाओं में परीक्षण स्ट्रिंग के साथ प्रत्येक ParagraphStyle पैरामीटर के लिए यूनिट परीक्षण बनाने की अनुशंसा की जाती है।

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

iOS में ParagraphStyle, TextStyle से कैसे भिन्न है?

NSMutableParagraphStyle पैराग्राफ फ़ॉर्मेटिंग (संरेखण, इंडेंटेशन, लाइन स्पेसिंग) का प्रबंधन करता है, जबकि TextStyle कैरेक्टर विशेषताओं (फ़ॉन्ट, रंग, आकार) का प्रबंधन करता है। दोनों NSAttributedString के माध्यम से लागू किए जाते हैं। ParagraphStyle पैराग्राफ स्तर पर काम करता है, TextStyle कैरेक्टर स्तर पर। एक पैराग्राफ में TextStyle के कई उदाहरण हो सकते हैं, लेकिन प्रति पैराग्राफ केवल एक ParagraphStyle।

Jetpack Compose में पहली पंक्ति इंडेंट कैसे सेट करें?

Jetpack Compose में, पहली पंक्ति इंडेंट TextStyle के अंदर TextIndent के माध्यम से सेट किया जाता है: TextStyle(textIndent = TextIndent(firstLine = 16.sp))। मान sp में होना चाहिए ताकि यह टेक्स्ट के साथ स्केल हो। बहु-पंक्ति टेक्स्ट के लिए, इंडेंट प्रत्येक पंक्ति पर लागू होता है जो एक नया पैराग्राफ ( कैरेक्टर) शुरू करती है। पहले पैराग्राफ के लिए, इंडेंट हमेशा लागू होता है।

SwiftUI में पैराग्राफ स्पेसिंग कैसे कॉन्फ़िगर करें?

SwiftUI में, paragraphSpacing का कोई सीधा समकक्ष नहीं है। पैराग्राफ स्पेसिंग के लिए, NSMutableParagraphStyle और paragraphSpacing गुण के साथ AttributedString (iOS 15+) का उपयोग करें। या Text("...\n\n...") के माध्यम से पैराग्राफ को अलग करें और टेक्स्ट ब्लॉक के बीच .padding() जोड़ें। जटिल टाइपोग्राफ़िक परिदृश्यों के लिए, UILabelRepresentable के माध्यम से NSAttributedString का उपयोग करें।

Android TextView में paragraphSpacing काम क्यों नहीं करता?

Android में TextView में paragraphSpacing गुण नहीं है — यह LeadingMarginSpan के साथ SpannableString के माध्यम से या कस्टम LineBackgroundSpan के माध्यम से सेट किया जाता है। लाइन स्पेसिंग के लिए setLineSpacing का उपयोग करें; पैराग्राफ स्पेसिंग के लिए, पैराग्राफ को अतिरिक्त से अलग करें या कई TextView इंस्टेंस के संयुक्त कंटेनर का उपयोग करें।

ParagraphStyle मोबाइल ऐप की पहुँच को कैसे प्रभावित करता है?

उचित ParagraphStyle पहुँच में सुधार करता है: पर्याप्त paragraphSpacing संज्ञानात्मक हानि वाले उपयोगकर्ताओं को पैराग्राफ सीमाओं को बेहतर ढंग से पहचानने में मदद करता है। WCAG 2.2 पैराग्राफ के दृश्य पृथक्करण (इंडेंटेशन या स्पेसिंग) की अनुशंसा करता है। ParagraphSpacing 1.5 × line-height से कम नहीं होना चाहिए। RTL लोकेल के लिए, सत्यापित करें कि इंडेंटेशन सही ढंग से प्रतिबिंबित हो।

सारांश

  • ParagraphStyle — पैराग्राफ फ़ॉर्मेटिंग नियमों का सेट: संरेखण, इंडेंटेशन, लाइन और पैराग्राफ स्पेसिंग।
  • iOS — NSMutableParagraphStyle 14+ पैरामीटर के साथ, NSAttributedString के माध्यम से लागू; SwiftUI में — AttributedString (iOS 15+)।
  • Android View — ParagraphStyle कार्यान्वयन (AlignmentSpan, LeadingMarginSpan) के साथ SpannableString।
  • Android Compose — TextStyle.textAlign, lineHeight, textIndent और लाइन ब्रेक नियंत्रण के लिए LineBreak।
  • Flutter — लाइन ऊँचाई निर्धारण के लिए TextStyle.height, TextAlign, TextHeightBehavior और StrutStyle का संयोजन।
  • स्थानीयकरण — RTL लोकेल समर्थन के लिए प्राकृतिक संरेखण का उपयोग करें; दोनों लेआउट में इंडेंट की जाँच करें।
  • सामान्य गलतियाँ — प्राकृतिक के बजाय हार्डकोडेड संरेखण, paragraphSpacingBefore की उपेक्षा, संकीर्ण कंटेनर के लिए गलत lineBreakMode।

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

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

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

यह भी पढ़ें