स्पंदन में पाठ विजेट के तहत पीली लाइनें?


125

मेरे पहले स्पंदन ऐप पर काम करना। मुख्य ऐप स्क्रीन में यह समस्या नहीं है, सभी ग्रंथों को दिखाना चाहिए जैसा कि उन्हें चाहिए।

हालाँकि इस नई स्क्रीन में मैं विकसित हो रहा हूँ, सभी पाठ विजेट में कुछ अजीब पीले रंग की लाइन / डबल-लाइन है।

यह क्यों हो रहा है पर कोई विचार?

पीली रेखाएँ


क्या आप अपना कोड जोड़ सकते हैं?
अज़ीज़ा

14
मुझे इस कारण पर संदेह है क्योंकि आपके पास इस पृष्ठ पर एक पाड़ नहीं है।
अज़ीज़ा

@aziza मुझे लगता है कि तुम सही हो। इस पृष्ठ में एक पाड़ नहीं है। मुझे संदेह था कि यह मुद्दा हो सकता है, लेकिन इसकी जाँच के साथ पालन नहीं किया गया। किसी भी विचार के रूप में ऐसा क्यों होता है जब मेरे पास कोई मचान नहीं होता है? मुझे महसूस नहीं हुआ कि इसकी आवश्यकता है। मैं वैसे भी सिर्फ एक पाड़ का उपयोग करना चाहिए, भले ही मैं केवल the_body_ पैरामीटर का उपयोग करने वाला हूं?
दासफिमा

2
प्रत्येक पृष्ठ को एक पाड़ की आवश्यकता होती है, भले ही आप अलग-अलग वर्गों पर छोटे विगेट्स को रिफैक्ट कर रहे हों, उन्हें कहीं एक पाड़ माता-पिता के साथ समाप्त होना चाहिए। मुझे यकीन नहीं है कि अगर इसका मतलब यह है कि पाठ को रेखांकित किया जाना है या यह एक मुद्दा है, भले ही, आप एक पाड़ के भीतर किसी भी पृष्ठ का निर्माण करने की आवश्यकता को समाप्त कर देंगे।
अज़ीज़ा

3
या यदि आप चाहते हैं donot Scaffold, तो आप सिर्फ चारों ओर अपने कर सकते हैं Textके साथ Materialविजेट
realpac

जवाबों:


154

समस्या हो रही है Scaffoldया नहीं। क्षुधा के Scaffoldलिए एक सहायक है Material(और AppBar, Drawerसामान की तरह)। लेकिन आप उपयोग करने के लिए मजबूर नहीं हैं Material

जो आप याद कर रहे हैं वह Themeमाता-पिता के रूप में एक उदाहरण है ।

यह जानना महत्वपूर्ण क्यों है? क्योंकि जब आप एक मोडल विकसित करेंगे ( showDialogउदाहरण के लिए), तो आप उसी समस्या का सामना करेंगे। लेकिन पाड़ एक अपारदर्शी फुलस्क्रीन विजेट है! और आप स्पष्ट रूप से अपने मोडल में ऐसा नहीं चाहते हैं।

थीम इंस्टेंस को पेश करने के कई तरीके हैं। मटेरियल ऐप में, यह आमतौर पर एक Materialविजेट को इंस्टेंट करके प्राप्त किया जाता है । और अंदाज लगाइये क्या? Scaffoldआपके लिए एक बनाता है। लेकिन यह Dialogभी!


3
एक हीरो के लिए भी ध्यान रखें, यह 'फ्लाइट' में माता-पिता से डिस्कनेक्ट हो जाता है, इसलिए Materialहीरो के बच्चे (बीओटीएच) के रूप में एक (या किसी भी थीम) को जोड़कर इसे संक्रमण में ठीक करता है। देखें github.com/flutter/flutter/issues/30647
aaronvargas

79

Materialविजेट को मूल तत्व के रूप में जोड़ें ।

@override
  Widget build(BuildContext context) {
    return Material(
        type: MaterialType.transparency,
        child: new Container(

1
आसपास textया विजेट के widgetसाथ Materialमेरी मदद की। मूल तत्व के रूप में सामग्री जोड़ने से मेरे मामले में मदद नहीं मिली
MMK

1
type: MaterialType.transparencyकिसी के साथ या उसके बिना दोनों काम करता है ।
सासमैन

28

आप या तो Scaffold(आम तौर पर बेहतर) या किसी अन्य घटक का उपयोग कर सकते हैं जो एक साधारण Materialविजेट की तरह सामग्री विषय प्रदान करता है ।

यहाँ उदाहरण है, उनमें से किसी का उपयोग करें:

var text = Scaffold(body: Text("Hi"),);
var text2 = Material(child: Text("Hi"),);

वर्कअराउंड के रूप में आप इसका उपयोग कर सकते हैं:

Text(
  'Your text',
  style: TextStyle(decoration: TextDecoration.none), // removes yellow line
)

16

पाठ शैली में एक सजावट तर्क होता है जिसे किसी के लिए सेट नहीं किया जा सकता है

Text("My Text",
  style: TextStyle(
    decoration: TextDecoration.none,
  )
);

इसके अलावा, जैसा कि दूसरों ने उल्लेख किया है, यदि आपका टेक्स्ट विजेट एक पाड़ या सामग्री विजेट के पेड़ में है, तो आपको सजावट पाठ शैली की आवश्यकता नहीं होगी।



6

बस एक और रास्ता जोड़कर मैं इन उत्तरों से मुठभेड़ करता हूं।

एक DefaultTextStyle विजेट के आसपास रूट विजेट लपेटें । प्रत्येक पाठ विजेट को बदलना यहाँ एक आवश्यकता नहीं है।

DefaultTextStyle(
    style: TextStyle(decoration: TextDecoration.none), 
    child : Your_RootWidget
)

आशा है कि यह किसी की मदद करता है।


2

आपको main.dart फ़ाइल में सामग्री और पाड़ विगेट्स जोड़ना चाहिए

 MaterialApp(
  home: Scaffold(
    body: Text('Hello world'),
  ),
);

2

इसके लिए एक अन्य समाधान है, खासकर यदि आप main.dart फ़ाइल के नीचे लिपटे कई पृष्ठों का उपयोग कर रहे हैं, तो आप कुछ इस तरह कर सकते हैं:

  child: MaterialApp(
    home: Material(child: Wrapper()),
  ),

यह पाठ के नीचे की पीली रेखाओं को हटा देगा जो रेपर के तहत संदर्भित / उपयोग किए गए किसी भी पेज में मौजूद है।


1

आपको बस सामग्री रूट विजेट जोड़ना होगा।

      @override
       Widget build(BuildContext context) {
      return Material(
         child: new Container(),
        );
       }

0

2 तरीके उपलब्ध हैं:

स्क्रीन के जनक में पाड़ का उपयोग करें

Scaffold(body: Container(child:Text("My Text")))

विजेट के जनक के लिए सामग्री का उपयोग करें

Material(child: Text("My Text"))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.