টলটলে টেক্সট উইজেটগুলির নীচে হলুদ লাইনগুলি?


123

আমার প্রথম ফ্লটার অ্যাপে কাজ করা। মূল অ্যাপ্লিকেশন স্ক্রিনটিতে এই সমস্যা নেই, সমস্ত পাঠ্যটি তাদের উচিত হিসাবে প্রদর্শিত হবে।

তবে এই নতুন স্ক্রিনে আমি বিকাশ করছি, সমস্ত পাঠ্য উইজেটের নীচে কিছু অদ্ভুত হলুদ লাইন / ডাবল-লাইন রয়েছে।

কেন এমন হচ্ছে এর কোনও ধারণা?

হলুদ রেখা


আপনি কি আপনার কোড যুক্ত করতে পারেন?
আজিজা

14
আমি সন্দেহ করি কারণ এর কারণ আপনার এই পৃষ্ঠায় কোনও স্ক্যাফোড নেই।
আজিজা

@aziza আমি মনে করি আপনি ঠিক বলেছেন এই পৃষ্ঠায় একটি ভাস্কর্য নেই। আমি সন্দেহ করেছিলাম যে এটি সমস্যা হতে পারে, তবে এটি যাচাই করে অনুসরণ করে নি। আমার কোনও ভাস্কর্য না থাকলে কেন এমন হয় এমন কোনও ধারণা? আমি বুঝতে পারি নি যে এটি প্রয়োজনীয় ছিল। যদিও আমি কেবল_এ_ডি_ প্যারামিটারটি ব্যবহার করব, তবুও কি আমার কেবল একটি স্ক্যাফোল্ড ব্যবহার করা উচিত?
দাসফিমা

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আমাকে সাহায্য করেছিল। মূল উপাদান হিসাবে উপাদান যুক্ত করা আমার ক্ষেত্রে কোনও উপকারে আসেনি
এমএমকে

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,
  )
);

এছাড়াও, যেমনটি অন্যরা উল্লেখ করেছে, আপনার পাঠ্য উইজেট যদি কোনও স্ক্যাফোল্ড বা মেটেরিয়াল উইজেটের গাছে থাকে তবে আপনার সজ্জা পাঠ্য শৈলীর প্রয়োজন হবে না।


10

এছাড়াও আপনি সজ্জাটি ব্যবহার করতে পারেন: আন্ডারলাইন সরানোর জন্য টেক্সটডেকোরেশন.নোন


6

এই উত্তরগুলিতে আমার মুখোমুখি অন্য কোনও উপায় যুক্ত।

ডিফল্ট টেক্সট স্টাইল উইজেটের আশেপাশে রুট উইজেটটি মুড়ে দিন । প্রতিটি পাঠ্য উইজেট পরিবর্তন করা এখানে প্রয়োজনীয়তা নয়।

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

আশা করি এটি কাউকে সাহায্য করবে।


2

আপনার মেইন.ডার্ট ফাইলে ম্যাটারিয়াল এবং স্ক্যাফোল্ড উইজেট যুক্ত করা উচিত

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

2

এর জন্য অন্য একটি সমাধান রয়েছে, বিশেষত যদি আপনি মেইন.ডার্ট ফাইলের আওতায় মোড়ানো একাধিক পৃষ্ঠাগুলি ব্যবহার করেন আপনি এই জাতীয় কিছু করতে পারেন:

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

এটি পাঠ্যের অধীনে হলুদ রেখাগুলি সরিয়ে ফেলবে যা মোড়কের নিচে রেফারেন্সযুক্ত / ব্যবহৃত কোনও পৃষ্ঠায় উপস্থিত রয়েছে।


1

আপনাকে কেবল উপাদান মূল উইজেট যুক্ত করতে হবে।

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

0

2 উপায় উপলব্ধ:

উইজেটের পিতামাতার জন্য স্ক্রিন ব্যবহারের সামগ্রীর পিতামাত্রে স্ক্যাফাল্ড ব্যবহার করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.