স্বচ্ছ ব্যাকগ্রাউন্ড সহ বিড়বিড় কর্নার ব্যাসার্ধ


90

নীচে আমার কোড যা আমি একটি স্বচ্ছ পটভূমি সহ একটি বৃত্তাকার কোণার ধারক রেন্ডার আশা করি।

return new Container(
                //padding: const EdgeInsets.all(32.0),
                height: 800.0,
                //color: const Color(0xffDC1C17),
                //color: const Color(0xffFFAB91),
                decoration: new BoxDecoration(
                  color: Colors.green, //new Color.fromRGBO(255, 0, 0, 0.0),
                  borderRadius: new BorderRadius.only(
                    topLeft:  const  Radius.circular(40.0),
                    topRight: const  Radius.circular(40.0))
                ),
                child:  new Container(
                    decoration: new BoxDecoration(
                        color: Colors.blue,
                        borderRadius: new BorderRadius.only(
                            topLeft:  const  Radius.circular(40.0),
                            topRight: const  Radius.circular(40.0))
                    ),
                  child: new Center(
                    child: new Text("Hi modal sheet"),
                  )

              ),

তবে এটি যা রেন্ডার করে এটি এটি একটি গোলাকার কোণার ব্যাসার্ধের সাথে একটি সাদা ধারক (প্রত্যাশিত স্বচ্ছ) সরবরাহ করে। কোন সাহায্য?

স্ক্রিনশট

উত্তর:


120

আপনি যদি Containerকোনও পিতামাতার ভিতরে গোলাকার কোণগুলির সাথে পটভূমি রঙ সেট করে দেয় তবে Colors.transparentআমি মনে করি এটি আপনি যা খুঁজছেন তা করে। যদি আপনি Scaffoldকোনও ডিফল্ট ব্যাকগ্রাউন্ড ব্যবহার করেন তবে তা সাদা। এটি Colors.transparentযদি আপনি চান তা অর্জন করে তবে সেটিকে পরিবর্তন করুন।

        new Container(
          height: 300.0,
          color: Colors.transparent,
          child: new Container(
            decoration: new BoxDecoration(
              color: Colors.green,
              borderRadius: new BorderRadius.only(
                topLeft: const Radius.circular(40.0),
                topRight: const Radius.circular(40.0),
              )
            ),
            child: new Center(
            child: new Text("Hi modal sheet"),
           )
         ),
        ),

4
আমি যদি স্লিভার অ্যাপবারে ছবিটি ব্যবহার করি , তবে এটি কীভাবে করবেন?
মোঃ আবদুল হালিম রফি

4
আপনি স্লিভারফিলআরমেইনিং (শিশু: উপরের কোড) ব্যবহার করতে পারেন
জেননডি

44

আপনি যদি স্বচ্ছ ব্যাকগ্রাউন্ডের সাথে কোণগুলিকে গোল করতে চান তবে ক্লিপআরেক্ট ব্যবহার করে সর্বোত্তম পন্থা।

return ClipRRect(
  borderRadius: BorderRadius.circular(40.0),
  child: Container(
    height: 800.0,
    width: double.infinity,
    color: Colors.blue,
    child: Center(
      child: new Text("Hi modal sheet"),
    ),
  ),
);

এটি কাজ করে .. তবে আমার পাত্রে শেষে ব্যাসার্ধের ব্যাসার্ধ: imgur.com/a/Qb5kaVW । তুমি আমাকে সাহায্য করতে পারো?
অগস্টো

সঙ্গে কাজ করে ColorFilteredBoxDecorationকোণে কাটা যদি আপনি ব্যর্থ ColorFilterসঙ্গে BlendMode.color
মিলান জারোস

শোমোডাল বটমপত্রের সাথে ব্যবহার করার সময় আপনি নীচে শিটটি থিমটি নির্দিষ্ট করতে হবে যেমন @ জয়জউ পরামর্শ দিয়েছেন
জর্জেন অ্যান্ডারসেন

27

1 ম 2019 পর্যন্ত, বটমশিট থিম ব্যবহার করুন

MaterialApp(
    theme: ThemeData(
      // Draw all modals with a white background and top rounded corners
      bottomSheetTheme: BottomSheetThemeData(
        backgroundColor: Colors.white,
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.vertical(top: Radius.circular(10))
        )
      )
    ),

সম্প্রতি পরিচয় করানো হয়েছে, চাদর শৈলী নিয়ন্ত্রণ করতে একটি থিম ব্যবহার করা এই সমস্যার সবচেয়ে ভাল হওয়া উচিত।

যদি আপনি বিভিন্ন নীচের শিটগুলি আলাদাভাবে থিম করতে চান তবে কেবলমাত্র সেই অঞ্চলের নীচে শিট থিমটি ওভাররাইড করার জন্য উপযুক্ত সাবট্রিতে একটি নতুন থিম অবজেক্ট অন্তর্ভুক্ত করুন।

যদি কোনও কারণে আপনি এখনও নীচের শিটটি চালু করার সময় থিমটিকে ম্যানুয়ালি ওভাররাইড করতে চান তবে শোবটমশিট এবং শোমডালবটমশিটে এখন ব্যাকগ্রাউন্ড কালার প্যারামিটার রয়েছে। এটি এর মতো ব্যবহার করুন:

 showModalBottomSheet(
    backgroundColor: Colors.transparent,
    context: context,
    builder: (c) {return NavSheet();},
  );

থিমটি ব্যবহার করে নীচে শীটগুলি অ্যাপ / অ্যাপের বর্তমান থিম নির্বিশেষে পুনরায় ব্যবহারের অনুমতি দেয় এবং উল্লিখিত হিসাবে ক্যানভাসের রঙ সেট করার নেতিবাচক পার্শ্ব প্রতিক্রিয়াগুলির কোনওটিই নেই।


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত ... পুরোপুরি কাজ করে!
জন ডেটলিফস

backgroundColor: Colors.transparent,আমার জন্য কাজ করেছেন
tudorprodan

15
/// Create the bottom sheet UI
  Widget bottomSheetBuilder(){
    return Container(
      color: Color(0xFF737373), // This line set the transparent background
      child: Container(
        decoration: BoxDecoration(
          color: Colors.white,
            borderRadius: BorderRadius.only(
                topLeft: Radius.circular(16.0),
                topRight: Radius.circular( 16.0)
            )
        ),
        child: Center( child: Text("Hi everyone!"),)
      ),
    );
  }

কোণার সাথে বোটোম শীটটি দেখানোর জন্য এটিকে কল করুন:

/// Show the bottomSheet when called
  Future _onMenuPressed() async {
    showModalBottomSheet(
        context: context,
        builder: (widgetBuilder) => bottomSheetBuilder()
    );
  }

14

এটি একটি পুরানো প্রশ্ন। তবে যারা এই প্রশ্নটি জুড়ে আসেন তাদের জন্য ...

গোলাকার কোণগুলির পিছনে সাদা ব্যাকগ্রাউন্ড আসলে ধারক নয়। এটি অ্যাপের ক্যানভাস রঙ।

ঠিক করুন: আপনার অ্যাপ্লিকেশনের ক্যানভাসের রঙটি কলার্স.টান্সপারেন্টে পরিবর্তন করুন

উদাহরণ:

return new MaterialApp(
  title: 'My App',
  theme: new ThemeData(
    primarySwatch: Colors.green,
    canvasColor: Colors.transparent, //----Change to this------------
    accentColor: Colors.blue,
  ),
  home: new HomeScreen(),
);

এটিতে কিছু ত্রুটি রয়েছে। রিফ্রেশ আইকনের মতো ক্যানভাস রঙের উপর নির্ভর করে এমন অন্যান্য অবজেক্টের সাদা পরিবর্তে স্বচ্ছ পটভূমি থাকবে।
জর্জে মেনজিভার

4
আমি এটি করার সুপারিশ করব না। প্রচুর উইজেট ক্যানভাসের রঙের উপর নির্ভর করে এবং সেগুলি স্বতন্ত্রভাবে সেট করা দরকার।
মৌরিই

সেরা উত্তর, এটি শীর্ষ উত্তর হওয়া উচিত।
অ্যালভিন কুইজন

যখন এটি ব্যবহার, সমস্ত canvasColorএর ঝাপটানি widgets এ পরিবর্তন হবে color.transparent, খোলা ড্রয়ারের করার চেষ্টা করুন, তুমি কি দেখতে পাই!
ক্রিমিন

অবশেষে! আমার সমস্যা সমাধান।
এমবার্টন

8
Scaffold(
  appBar: AppBar(
    title: Text('BMI CALCULATOR'),
  ),
  body: Container(
    height: 200,
    width: 170,
    margin: EdgeInsets.all(15),
    decoration: BoxDecoration(
      color: Color(
        0xFF1D1E33,
      ),
      borderRadius: BorderRadius.circular(5),
    ),
  ),
);

4

মডেলবটমশিটের জন্য স্বচ্ছ পটভূমির রঙ ব্যবহার করুন এবং বাক্স সজ্জায় পৃথক রঙ দিন


   showModalBottomSheet(
      backgroundColor: Colors.transparent,
      context: context, builder: (context) {
    return Container(

      decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.only(
            topLeft:Radius.circular(40) ,
            topRight: Radius.circular(40)
        ),
      ),
      padding: EdgeInsets.symmetric(vertical: 20,horizontal: 60),
      child: Settings_Form(),
    );
  });


1
showModalBottomSheet(
   context: context,
   builder: (context) => Container(
            color: Color(0xff757575), //background color 
            child:  new Container(
                decoration: new BoxDecoration(
                    color: Colors.blue,
                    borderRadius: new BorderRadius.only(
                        topLeft:  const  Radius.circular(40.0),
                        topRight: const  Radius.circular(40.0))
                ),
              child: new Center(
                child: new Text("Hi modal sheet"),
              )

     

 ),

)

এটি আপনার পাত্রে রঙটিকে পটভূমির রঙের মতো করে তুলবে। এবং নীল বর্ণের সাথে একই উচ্চতা-প্রস্থের একটি শিশু ধারক থাকবে। এটি পটভূমির রঙের মতো একই রঙের সাথে কোণটি তৈরি করবে।


0
class MyApp2 extends StatelessWidget {

  @override
  Widget build(BuildContext context) { 
    return MaterialApp( 
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: AppBarTheme(
          elevation: 0,
          color: Colors.blueAccent,
        )
      ),
      title: 'Welcome to flutter ',
      home: HomePage()
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {

  int number = 0;
  void _increment(){
   setState(() {
      number ++;
   });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.blueAccent,
        appBar: AppBar(
          title: Text('MyApp2'), 
          leading: Icon(Icons.menu),
          // backgroundColor: Colors.blueAccent,

          ),
        body: Container(
          decoration: BoxDecoration(
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(200.0),
              topRight: Radius.circular(200)
            ), 
            color: Colors.white,
          ),
        )
      );
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.